Microsoft Y2K  
Microsoft
 This static CD-based web site is representative of the www.microsoft.com/y2k site as of October 15, 1999.

Microsoft Year 2000 Readiness Disclosure & Resource Center
FoxPro Professional 2.6  (German) - 16-Bit Win

Product Summary
Product: FoxPro Professional
Version: 2.6
Category: Compliant#
Operating System: 16-Bit Win
Language: German Release Date: 01 Jan 1994
Operational Range: 01 Jan 100 - 31 Dec 9999
Can applications be built with this tool that adhere to the Microsoft Year 2000 Compliance Statement? Yes
Prerequisites: None
Product Dependencies: Windows 3.1, Windows 3.11, MS-DOS, Mac, and Unix
Clock Dependencies: System Clock
Last Updated: 21 May 1999
Product Details

Can applications be built with this tool that adhere to the Microsoft Year 2000 Compliance Statement?

Yes, if during design time 4-digit years are always specified in date constants, and at run time one of the following actions is taken:

  • 4-digit years are used for data entry.
  • The developer writes resolution routines where appropriate to ensure that dates entered with 2-digit years are assigned to the desired century before being stored in tables.

How the product runtime handles dates:

Dates in variables and calculations are represented as 8-byte numeric values representing the number of days since some fixed date. In tables, date types use 8 bytes per field per record on disk and are stored internally as numeric values. This size is not affected by the settings of SET CENTURY or input masks on textboxes for data entry. This provides for full, unambiguous dates being stored independent of application logic.

Two-digit shortcut handling:

Dates with 2-digit years are always assumed to be in the 1900s. Even if Century is set to On, entering a 2-digit shortcut for a year will cause the date to be assumed to be in the 1900s.

Recommended practices to develop year 2000 compliant applications:

Set Century On

This feature of the product causes FoxPro to display dates with 4-digit years during data entry and display. The product default is Set Century Off. In the Off setting, it can be impossible to enter 4-digit dates and 2-digit dates are assumed to be in the 1900s.

Note: Regardless of how Century is set, users can enter dates with 2-digit years. These dates will be assumed to be in the 1900s.

Write Date Resolution Routines to Interpret Dates with 2-digit Years

If users will be entering dates with 2-digit years, developers can write date resolution routines to assign those dates to the desired century for the particular application. For instance, if dates with a year less than 75 are intended to be in the 2000s, the following code can be used in the Valid clause of a control on a form to automatically adjust the century portion of entered dates.

ldGetDate = table.datefield

IF YEAR(ldGetDate) < 1975

lcMonth = STR(MONTH(ldGetDate))

lcDay = STR(DAY(ldGetDate))

lcYear = STR(YEAR(ldGetDate)+100)

ldGetDate = CTOD(lcMonth+"/"+lcDay+"/"+lcYear)

REPLACE table.datefield WITH ldGetDate

ENDIF

Many FoxPro 2.6 applications use an Indirect READ strategy where the field values of a record are first SCATTERed to memory variables. Edits are then made directly against the memory variables. The memory variables are then GATHERed to write the data to the record. In that case the code might be adjusted as follows.

ldGetDate = m.datefield

IF YEAR(ldGetDate) < 1975

lcMonth = STR(MONTH(ldGetDate))

lcDay = STR(DAY(ldGetDate))

lcYear = STR(YEAR(ldGetDate)+100)

ldGetDate = CTOD(lcMonth+"/"+lcDay+"/"+lcYear)

m.datefield = ldGetDate

ENDIF

It Is Recommended that LUPDATE() Not Be Used

LUPDATE() returns the date that a table was last updated. This date is read directly from the .dbf table header. However, because only two digits of the year are stored in the table header, the date the table was last updated is assumed to be in the 1900s. Use the FDATE() function instead. A developer who wishes to use LUPDATE() must write a rollover routine to assign the 2-digit year it returns to the appropriate century.

Use 4-digit Years in Date Constants

Date constants of the form {mm/dd/yy} are valid. However, they are assumed to be in the 1900s. The recommended approach is to specify 4-digit years, e.g. {mm/dd/yyyy}.

Please refer to the white paper, "Year 2000 Date Support in FoxPro"

Common development errors dealing with year 2000 date issues:

Developers should take care to validate data entered as dates in addition to resolving ambiguous 2-digit year entries. Although FoxPro provides language and tools to help developers plan for year 2000 compliance, ultimately it is the responsibility of the application (and therefore the developer) to validate data before it is stored permanently in tables. For example, if a user entering warranty expiration dates for new computers enters 04/01/1902, the application should contain logic to reject this date, even though the date is exists and is year 2000 compliant.

Even if SET CENTURY ON is used and dates are displayed with four digit years, users can enter dates with 2-digit years. The date will be assumed to be in the 1900s.

Using dates with 2-digit years in code can lead to unexpected results. This practice should be avoided.

Please refer to the white paper, "Year 2000 Date Support in FoxPro"

Testing guidelines and recommendations:

Review the application and check the forms (screens) and reports for formatting and other issues related to dates.

Investigate the following areas of the product:

  • Index tag expressions
  • Report, label, and menu expressions

Investigate the code directly, searching for potential issues. The FoxPro Filer utility can be used to search for specific strings in source files, such as "CTOD(", that may cause problems.

Test the application under an actual year 2000 situation by setting the Windows, MS-DOS, Macintosh or Unix system to a date in the 2000s.

 

 

Return to Search Screen

Legend of Symbols:
* The product is compliant with recommended customer action. This indicates a prerequisite action is recommended which may include loading a software update or reading a document.
# The product is compliant with acceptable deviations from Microsoft's standard of compliance. An acceptable deviation does not affect the core functionality, data integrity, stability, or reliability of the product.
+ The product is compliant with pending Year 2000 software updates. Future maintenance actions will be recommended shortly. See Product Guide for further details.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.

If after reviewing this information you have additional questions related to this product, click here.

 

YEAR 2000 READINESS DISCLOSURE

ALL COMMUNICATIONS OR CONVEYANCES OF INFORMATION TO YOU CONCERNING MICROSOFT AND THE YEAR 2000, INCLUDING BUT NOT LIMITED TO THIS DOCUMENT OR ANY OTHER PAST, PRESENT OR FUTURE INFORMATION REGARDING YEAR 2000 TESTING, ASSESSMENTS, READINESS, TIME TABLES, OBJECTIVES, OR OTHER (COLLECTIVELY THE "MICROSOFT YEAR 2000 STATEMENT"), ARE PROVIDED AS A "YEAR 2000 READINESS DISCLOSURE" (AS DEFINED BY THE YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT) AND CAN BE FOUND AT MICROSOFT'S YEAR 2000 WEBSITE LOCATED AT http://www.microsoft.com/year2000/ (the "Y2K WEBSITE"). EACH MICROSOFT YEAR 2000 STATEMENT IS PROVIDED PURSUANT TO THE TERMS HEREOF, THE TERMS OF THE Y2K WEBSITE, AND THE YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT FOR THE SOLE PURPOSE OF ASSISTING THE PLANNING FOR THE TRANSITION TO THE YEAR 2000. EACH MICROSOFT YEAR 2000 STATEMENT CONTAINS INFORMATION CURRENTLY AVAILABLE AND IS UPDATED REGULARLY AND SUBJECT TO CHANGE. MICROSOFT THEREFORE RECOMMENDS THAT YOU CHECK THE Y2K WEBSITE REGULARLY FOR ANY CHANGES TO ANY MICROSOFT YEAR 2000 STATEMENT. EACH MICROSOFT YEAR 2000 STATEMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. CONSEQUENTLY, MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. MOREOVER, MICROSOFT DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF ANY MICROSOFT YEAR 2000 STATEMENT IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY MICROSOFT OR ITS AUTHORIZED REPRESENTATIVES SHALL CREATE A WARRANTY OR IN ANY WAY DECREASE THE SCOPE OF THIS WARRANTY DISCLAIMER. IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER REGARDING ANY MICROSOFT YEAR 2000 STATEMENT INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS, PUNITIVE OR SPECIAL DAMAGES, EVEN IF MICROSOFT OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE FOREGOING LIMITATION MAY NOT APPLY TO YOU. THE INFORMATION CONTAINED IN EACH MICROSOFT YEAR 2000 STATEMENT IS FOUND AT THE Y2K WEBSITE AND IS INTENDED TO BE READ IN CONJUNCTION WITH OTHER INFORMATION LOCATED AT THE Y2K WEBSITE, INCLUDING BUT NOT LIMITED TO MICROSOFT'S YEAR 2000 COMPLIANCE STATEMENT, THE DESCRIPTION OF THE CATEGORIES OF COMPLIANCE INTO WHICH MICROSOFT HAS CLASSIFIED ITS PRODUCTS IN ITS YEAR 2000 PRODUCT GUIDE, AND THE MICROSOFT YEAR 2000 TEST CRITERIA.

ANY MICROSOFT YEAR 2000 STATEMENTS MADE TO YOU IN THE COURSE OF PROVIDING YEAR 2000 RELATED UPDATES, YEAR 2000 DIAGNOSTIC TOOLS, OR REMEDIATION SERVICES (IF ANY) ARE SUBJECT TO THE YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT (112 STAT. 2386). IN CASE OF A DISPUTE, THIS ACT MAY REDUCE YOUR LEGAL RIGHTS REGARDING THE USE OF ANY SUCH STATEMENTS, UNLESS OTHERWISE SPECIFIED BY YOUR CONTRACT OR TARIFF.


 

Monday, September 20, 1999
1999 Microsoft Corporation. All rights reserved. Terms of use.

This site is being designated as a Year 2000 Readiness Disclosure and the information contained herein is provided pursuant to the terms hereof and the Year 2000 Information and Readiness Disclosure Act.