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