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
in any of these levels. In short, it looks like Open Access software is
the least of your problems!
Top of page
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
every PC configuration is unique (eg customisation by the makers of
Even BIOS with the same version number has been found to behave
It is likely that most PC owners will be unable to successfully upgrade
Top of page
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
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
on disk after 1999 end up with a 1980 date stamp and appear older than
the 1999 versions. Consider disabling features which automatically
files (or delete fiiles!) since you may lose data if it accidentally
the wrong "date stamp". Worse still, files stored to disk with "date
post-1999 might not be accessible due to BIOS limitations (this is
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
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
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
after 1999 will result in a corrupted file and possible computer crash!
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
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
placed at the start and end of your AUTOEXEC.BAT file. It is designed
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
4 years to it. The result is saved as the SYSDATE for the duration of
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 2 January 2000.