In association with the Australian Open Access User Group
This page is mainly a brief summary of articles that appear at the foot of the page.
These are not easy questions to answer. There are several things that can go wrong with the typical PC. These notes are intended to help Open Access Users identify whether they are likely to have problems.
There are several levels of a PC which use dates and problems
can occur in any of these levels. In short, it looks like Open
Access software is the least of your problems!
Top of page
BIOS
BIOS is loaded whenever the PC is booted (powered) up. Amongst many other things, this reads the date and time from a non-volatile (CMOS) memory (which, in turn, usually obtains power from a small battery on the motherboard - more on this later). If your PC BIOS was written before 1997 then there is a very high risk that it will not "roll over" correctly at midnight on 31 December 1999. The date might come out as 1900, 1948, 1980 or some other arbitrary date. Even if you set the date to post-1999 the CMOS will not store it correctly. There is even a slight risk that the PC will no longer boot if the system date (Sysdate) exceeds 1999 so it is very important that you have a complete back-up before you try setting the system date to beyond 1999 (and you thought that was a quick way to test if your BIOS is "2000 compliant"!). (If the PC does hang you might need to "reset" the CMOS by disconnecting or shorting the battery, if this is possible. This is a last resort, of course - check with an expert first).
Even BIOS apparently written in 1997 has been found to have problems.
A second possible BIOS problem is that it does not recognise that 2000 is a leap year, and therefore skips the date 29 February 2000 (you can check that Open Access is OK by searching Appointments for that date). This will mean the user will have to set the Sysdate to 29 Feb 2000 on that day (to ensure that the operatng system and software get it right) and also change the date back one day on 1 March 2000.
Finally, the BIOS might get the day of the week wrong. This might not be a problem since the operating systems and software will probably do their own day of week calculations, based only on the Sysdate.
BIOS/CMOS problems are probably the most insidious since just
about every PC configuration is unique (eg customisation by
the makers of motherboards). Even BIOS with the same version
number has been found to behave differently. It is likely that
most PC owners will be unable to successfully upgrade their
BIOS.
Top of page
Operating System
In theory DOS, Windows, Windows 95 and other popular operating systems should be able to handle post-1999 dates correctly. To avoid confusion, however, the default settings might need to be changed to always display dates with four digits for the year.
The main problem with non-networked operating systems is that
they usually* get the date from BIOS so a misbehaving BIOS
will pass the problems on to the Operating System. This could
mean, for example, that files stored on disk after 1999 end up
with a 1980 date stamp and appear older than the 1999
versions. Consider disabling features which automatically
archive files (or delete fiiles!) since you may lose data if
it accidentally gets the wrong "date stamp". Worse still,
files stored to disk with "date stamps" post-1999 might not be
accessible due to BIOS limitations (this is unlikely but does
need to be checked).
* Windows 98 (Memphis), NT 4.0 and OS/2 Warp apparently have
bios date correction routines built in (ie , 1900 is treated
as 2000). WIN95 WIN3.11 and DOS do not have this feature.
WIN95 and Win3.11 "patches" should soon be available from Microsoft.
Top of page
Software
Most of these tips apply to Open Access software but
users of other software should find it useful.
The main "fix" needed for Open Access is the way it handles two-digit abbreviations of the year. These are currently all assumed to be in the 1900s. The DSPI "patch" for Open Access, which is now available, allows the user to set two-digit years to the 2000s. It is intended to be used after the turn of the century since its current "breakpoint" is 00. Also it is not reversible so make sure you backup the OA4.SPI file before running the patch. See below for Microsoft's "breakpoints".
Before version 4 Open Access used to prompt the user for the current date when it started - a carryover from the days of XT PCs with no battery-backed CMOS. Maybe that feature should have been retained (dig out your old copies of OA3)!
As with the operating system, Open Access gets date information from BIOS so if the BIOS is wrong then Open Access will get it wrong.
Open Access Programmer code which manipulates dates will need to be reviewed, particularly if it converts dates to or from strings. Open Access handles post-1999 dates correctly. Dates, days of the week and date interval calculations appear to be correct. Program/SQL statements such as SYSDATE-30, SYSDATE+30 (important for those 30 day invoices), DATE(mm,dd,2YYY) and STRING(date) all work correctly. Of course, programs which store data using a two-digit year (eg an archive file called 98ACC.DF) will also need reviewing. One major advantage of Open Access, compared with, say, MS Access, is that the programming code is contained in discrete ASCII files. Therefore these files can be readily searched for strings associated with potential Year 2000 problems (eg "DATE(", "1999", "31-12-1999", "31-12-99" ).
Consider adding OA Programmer code along the following lines when an application is launched:
Conversion of Open Access data to or from other formats, such as dBase, DIF, 1-2-3 or ASCII might also need to be checked. Make sure that the package receiving the data can cope with the date format.
As far as Microsoft
products go, it looks like patches will be available for most
recent products, if they are not already compliant. Word 5 for
DOS and MS Access 2.0 are "not compliant" and will probably need
to be scrapped. However, upgrading from Access 2.0 to a
recent version has its problems.
With Word 5 for DOS any attempt to create a new file after
1999 will result in a corrupted file and possible computer
crash! (MS statement)
With Access 7.0 you might need to change
the
date field display formats to 4-digit years since the
default is 2 digits (how annoying!).
Top of page
Help
For an overwhelming range of advice on Year 2000 see the links at the foot of this page. For example, you can get some evaluation shareware called "Check 2000" from Graham Plowman's web site. This allows the user to search through selected files looking for relevant strings. The user can add search strings to the list so it can easily be used for checking OA Programmer code (one good reason for logically naming your code and keeping it in separate directories).
Check 2000 also comes with an EXE file called BIOSDATE.EXE.
This is placed at the start and end of your AUTOEXEC.BAT file.
It is designed for PCs with BIOS which cannot handle post-1999
dates. In brief, a pre-2000 date is always stored in BIOS (in
fact 4 years earlier than the actual date). When AUTOEXEC.BAT
starts the program reads the BIOS date and adds 4 years to it.
The result is saved as the SYSDATE for the duration of the
session (since DOS and Windows are happy with post-1999
dates). At the end of AUTOEXEC.BAT the program changes the
SYSDATE back four years so it can be safely saved to BIOS.
This solution will no longer work after 2003 but it could get
many businesses out of trouble around the turn of the century.
Note that another company, GMT-2000
also markets software called Check 2000 - they are not the
same!
Top of page
Prepared by Michael Paine. Last update
February 2024