Microsoft TechNet ITHome - Microsoft Year 2000 Product Guide
Microsoft Products
Product Entry Guide Detail


The Microsoft Year 2000 Resource Center Product Guide details specific Year 2000 information concerning Microsoft products. The information in the product guide is presented to assist IT professionals in planning their transition to the Year 2000. If you cannot find a specific product and it is not on the "Microsoft Products: Testing Yet to be Completed" list, you can assume it will NOT be tested for compliancy.
Microsoft will continually update the Year 2000 Product Guide with the most current Year 2000 test information. Visit the Year 2000 Product Guide for more details regarding the Microsoft Compliance Categories.

------------------------
Microsoft Year 2000 Resource Center
Money  1.x   (English)

Product Summary
Product: Money Version: 1.x Category:Compliant
Language: English OS: 32-Bit Win Release Date: 23 Aug 1991
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.0 or later
Clock Dependencies: Operating System Clock
Last Updated: 14 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – December 31, 2075, but

January 1, 1993 – December 31, 2075 for certain online banking services.

How the product handles dates:

Money version 1.0 accepts from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).

  • 4 bits for Month (0-11)

  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 1.0 handles 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is

  • 4-digit dates entered before 1/1/1948 are not accepted

  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.

    Money version 1.0 handles 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  2. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

In some versions, QIF uses an apostrophe to denote dates in the 2000s. For example: 1/31’01 indicates January 31, 2001.

Presented below is a table describing how Money interprets QIF data ranges:

  1. Money v1 does not support apostrophe year separator format (MM/DD’YY), QIF transactions with apostrophe year separator are imported with Blank Dates.
  2. Money exports all dates to MM/DD/YY format and Money1’s date range is 1/1/1948 to 12/31/2075. As a result, dates between 1/1/1948 to 12/31/1975 and dates between 1/1/2048 to 12/31/2075 are not distinguishable in the exported QIF file

Transaction Dates in Money

Exported to QIF as

1/1/48-12/31/99

M/D/YY

1/1/48-12/31/99

1/1/2000 to 12/31/2075

M/D/YY

1/1/00 - 12/31/75

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1948 – 12/31/1999

1/1/2000 – 12/31/2047

MM/DD’YY

Blank Date

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2.x   (English)

Product Summary
Product: Money Version: 2.x Category:Compliant
Language: English OS: 32-Bit Win Release Date: 01 Aug 1992
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.0 or later
Clock Dependencies: Operating system clock
Last Updated: 14 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – December 31, 2075, but

January 1, 1993 – December 31, 2075 for certain online banking services

How the product handles dates:

Money version 2.0 accepts dates from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 2.0 handles 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money version 2.0 handles 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047)

    If YY 48-99, it is considered 19xx (1948-1999)

  3. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

In some versions, QIF uses an apostrophe to denote dates in the 2000s. For example: 1/31’01 indicates January 31, 2001.

Presented below is a table describing how Money interprets QIF data ranges:

  1. Money v2 does not support apostrophe year separator format (MM/DD’YY), QIF transactions with apostrophe year separator are imported with Blank Dates.
  2. Money exports all dates to MM/DD/YY format and Money1’s date range is 1/1/1948 to 12/31/2075. As a result, dates between 1/1/1948 to 12/31/1975 and dates between 1/1/2048 to 12/31/2075 are not distinguishable in the exported QIF file.

Transaction Dates in Money

Exported to QIF as

1/1/48-12/31/99

M/D/YY

1/1/48-12/31/99

1/1/2000 to 12/31/2075

M/D/YY

1/1/00 - 12/31/75

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1948 – 12/31/1999

1/1/2000 – 12/31/2047

MM/DD’YY

Blank Date

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (Canadian English)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: Canadian English OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (English)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: English OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (English Australian)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: English Australian OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (English British)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: English British OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (French)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: French OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (German)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: German OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (Italian)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: Italian OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  2000 (8.x)   (Japanese)

Product Summary
Product: Money Version: 2000 (8.x) Category:Compliant
Language: Japanese OS: 32-Bit Win Release Date: 04 Aug 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95 or later; Windows NT 4.0 Service Pack 4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 28 Sep 1999
Product Details

Description of how the product accepts dates:

  1. Four Digit Dates.
  2. Money 2000 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30th, 1899 A.D. The fractional portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1st, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX and OFC

    Money transmits date information to (and receives from) OFX and OFC using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00 it is considered 20__ __

    If YY < 93, it is considered 20__ (e.g., 2092)

    If YY >= 93, it is considered 19__ (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

    ANSER-SPC

    Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Y2K compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01 ). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. Dates in the apostrophe format will be interpreted with the same heuristic as other valid QIF date formats.

Users must use the Windows date format of MM/dd/YY format when they import and export QIF files using US Money 2000. This mm/dd/yy system date format is required when importing and exporting QIF according to Intuit’s Quicken QIF Y2K statement.

Presented below is a table describing how Money interprets QIF data ranges:

US Money2000:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1965

M/d/yyyy

1/1/1966-12/31/1999

M/D/yy

1/1/2000 to 12/31/2065

M/D’yy

1/1/2066 -12/31/2200

M/D’YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  3.x   (English)

Product Summary
Product: Money Version: 3.x Category:Compliant
Language: English OS: 32-Bit Win Release Date: 12 Jan 1994
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.1 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 14 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but

1/1/1993 - 12/31/2075 for certain online banking services.

How the product accepts dates:

Money 3.0 accepts dates from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 3.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money version 3.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4. Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 3.0 was released, it did not support the apostrophe format in QIF.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2047

M/D/YY

1/1/2048 – 12/31/2075

M/D/YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

2000-2047

1948-1999

MM/DD’YY

Blank Date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  3.x   (English Australian)

Product Summary
Product: Money Version: 3.x Category:Compliant
Language: English Australian OS: 32-Bit Win Release Date: 12 Jan 1994
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.1 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but

1/1/1993 - 12/31/2075 for certain online banking services.

How the product accepts dates:

Money 3.0 accepts dates from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 3.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money version 3.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4. Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 3.0 was released, it did not support the apostrophe format in QIF.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2047

M/D/YY

1/1/2048 – 12/31/2075

M/D/YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

2000-2047

1948-1999

MM/DD’YY

Blank Date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  3.x   (English British)

Product Summary
Product: Money Version: 3.x Category:Compliant
Language: English British OS: 32-Bit Win Release Date: 12 Jan 1994
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.1 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but

1/1/1993 - 12/31/2075 for certain online banking services.

How the product accepts dates:

Money 3.0 accepts dates from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 3.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money version 3.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4. Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 3.0 was released, it did not support the apostrophe format in QIF.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2047

M/D/YY

1/1/2048 – 12/31/2075

M/D/YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

2000-2047

1948-1999

MM/DD’YY

Blank Date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  3.x   (French)

Product Summary
Product: Money Version: 3.x Category:Compliant
Language: French OS: 32-Bit Win Release Date: 12 Jan 1994
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.1 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but

1/1/1993 - 12/31/2075 for certain online banking services.

How the product accepts dates:

Money 3.0 accepts dates from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 3.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money version 3.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4. Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 3.0 was released, it did not support the apostrophe format in QIF.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2047

M/D/YY

1/1/2048 – 12/31/2075

M/D/YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

2000-2047

1948-1999

MM/DD’YY

Blank Date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  3.x   (German)

Product Summary
Product: Money Version: 3.x Category:Compliant
Language: German OS: 32-Bit Win Release Date: 12 Jan 1994
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 3.1 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but

1/1/1993 - 12/31/2075 for certain online banking services.

How the product accepts dates:

Money 3.0 accepts dates from 1/1/1948 through 12/31/2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 3.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money version 3.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4. Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 3.0 was released, it did not support the apostrophe format in QIF.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2047

M/D/YY

1/1/2048 – 12/31/2075

M/D/YYYY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

2000-2047

1948-1999

MM/DD’YY

Blank Date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  4.x   (Canadian French)

Product Summary
Product: Money Version: 4.x Category:Compliant
Language: Canadian French OS: 32-Bit Win Release Date: 16 Aug 1995
Operational Range: -
Prerequisites: None.
Product Dependencies: Windows 95, or Windows NT 3.51 or later.
Clock Dependencies: Operating system clock is not advanced beyond 2038.
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking Services

How the product accepts dates:

Money version 4.0 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 4.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.
  2. Money version 4.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4.  

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 4.0 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000 – 12/31/2047

1/1/1948 – 12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1’00 – 12/31’75 are imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 are imported as blank dates

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  4.x   (English)

Product Summary
Product: Money Version: 4.x Category:Compliant
Language: English OS: 32-Bit Win Release Date: 16 Aug 1995
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking Services

How the product accepts dates:

Money version 4.0 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 4.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.
  2. Money version 4.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4.  

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 4.0 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000 – 12/31/2047

1/1/1948 – 12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1’00 – 12/31’75 are imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 are imported as blank dates

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  4.x   (French)

Product Summary
Product: Money Version: 4.x Category:Compliant
Language: French OS: 32-Bit Win Release Date: 16 Aug 1995
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking Services

How the product accepts dates:

Money version 4.0 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 4.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.
  2. Money version 4.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4.  

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 4.0 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000 – 12/31/2047

1/1/1948 – 12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1’00 – 12/31’75 are imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 are imported as blank dates

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  4.x   (German)

Product Summary
Product: Money Version: 4.x Category:Compliant
Language: German OS: 32-Bit Win Release Date: 16 Aug 1995
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking Services

How the product accepts dates:

Money version 4.0 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 4.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.
  2. Money version 4.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4.  

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 4.0 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000 – 12/31/2047

1/1/1948 – 12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1’00 – 12/31’75 are imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 are imported as blank dates

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  4.x   (Portuguese (Brazil))

Product Summary
Product: Money Version: 4.x Category:Compliant
Language: Portuguese (Brazil) OS: 32-Bit Win Release Date: 16 Aug 1995
Operational Range: -
Prerequisites: None.
Product Dependencies: Windows 95, or Windows NT 3.51 or later.
Clock Dependencies: Operating system clock is not advanced beyond 2038.
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking Services

How the product accepts dates:

Money version 4.0 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 4.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.
  2. Money version 4.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4.  

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 4.0 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000 – 12/31/2047

1/1/1948 – 12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1’00 – 12/31’75 are imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 are imported as blank dates

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  4.x   (Spanish)

Product Summary
Product: Money Version: 4.x Category:Compliant
Language: Spanish OS: 32-Bit Win Release Date: 16 Aug 1995
Operational Range: -
Prerequisites: None.
Product Dependencies: Windows 95, or Windows NT 3.51 or later.
Clock Dependencies: Operating system clock is not advanced beyond 2038.
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally 1/1/1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking Services

How the product accepts dates:

Money version 4.0 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16-bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money version 4.0 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two-Digit Dates.
  2. Money version 4.0 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services
  4.  

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a two-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best two-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31’01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money v. 4.0 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000 – 12/31/2047

1/1/1948 – 12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1’00 – 12/31’75 are imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 are imported as blank dates

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (Canadian French)

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: Canadian French OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: None.
Product Dependencies: Windows 95, or Windows NT 3.51 or later.
Clock Dependencies: Operating system clock is not advanced beyond 2038.
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (English)

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: English OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating System Clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (English British)

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: English British OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating System Clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (French)

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: French OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating System Clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (German)

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: German OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating System Clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (Portuguese (Brazil))

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: Portuguese (Brazil) OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating System Clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  5.x   (Spanish)

Product Summary
Product: Money Version: 5.x Category:Compliant
Language: Spanish OS: 32-Bit Win Release Date: 05 Aug 1996
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 3.51 or later
Clock Dependencies: Operating System Clock is not advanced beyond 2038
Last Updated: 15 Aug 1999
Product Details

Operational Range for Data: Generally January 1, 1948 – 12/31/2075 but,

1/1/1993 - 12/31/2075 for certain online banking services.

Description of how the product accepts dates:

Money 97 accepts dates from January 1, 1948 through December 31, 2075. It uses a field oriented date structure with 16 bits to represent dates:

  • 5 bits for Day (0-30).
  • 4 bits for Month (0-11)
  • 7 bit for Year (0-127)

These date values are zero-based, which means to represent all possible days in a month, 31 days, and starting with 0, you need 0-30. 5 bits are needed to represent 0-30 days. To represent all possible months in a year, 12 months, and starting with 0, you need 0-11. 4 bits are needed to represent 0-11 months. This means there are 7 bits left out of the 16 bit structure for years. 7 bits can represent a maximum of 127 years. Therefore, starting in 1948, the maximum range is 1948 + 127 = 2075.

  1. Four Digit Dates.

Money 97 accepts 4-digits dates in the following manner:

  • 4-digit dates entered from 1/1/1948 to 12/31/2075 are treated as is
  • 4-digit dates entered before 1/1/1948 are not accepted
  • 4-digit dates entered after 12/31/2075 are not accepted

 

  1. Two Digit Dates.
  2. Money 97 accepts 2-digit dates in the following manner:

    If YY is 00-47, it is considered 20xx (2000-2047).

    If YY is 48-99, it is considered 19xx (1948-1999).

  3. Online Banking Services.
  4.  

    OFC and Visa:

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree/ISC/NPC:

    Checkfree/ISC/NPC’s specification specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years (YY) during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2075.

     

  5. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money97 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1948-12/31/1999

M/D/YY

1/1/2000 to 12/31/2075

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/2000-12/31/2047

1/1/1948-12/31/1999

MM/DD’YY

1/1’00 – 12/31’75 imported as 1/1/2000 – 12/31/2075

1/1’76 – 12/31’99 imported as blank date

Invalid Date

Blank Date

MM/DD/YYYY

1/1/1948 – 12/31/2075

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (Canadian French)

Product Summary
Product: Money Version: 98 Category:Compliant
Language: Canadian French OS: 32-Bit Win Release Date: 06 Aug 1997
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95, or Windows NT 4 (no specific Service Pack is required, though Service Pack 3 is recommended)
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200 but

January 1, 1993 – December 31, 2092 for certain online banking Services

How the product accepts dates:

  1. Four-Digit Dates.

    Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  2. Two-Digit Dates.

    Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

     

     

  3. Online Banking Services.

    OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

     

    International (BTX/MTL)

    Money operates with two locale specific online drivers in Germany (BTX) and France (MTL). MTL uses YYYYMMDD format. BTX uses DD.MM.YYYY format.

     

  4. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money98 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000 to 12/31/2099

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1900-12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1/2000-12/31/2099

Invalid Date

Blank Date

M/D/y or M/d’Y format

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (English)

Product Summary
Product: Money Version: 98 Category:Compliant
Language: English OS: 32-Bit Win Release Date: 06 Aug 1997
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 4 (no specific Service Pack is required, though Service Pack 3 is recommended)
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200 but

January 1, 1993 – December 31, 2092 for certain online banking Services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two-Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

     

     

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

     

    International (BTX/MTL)

    Money operates with two locale specific online drivers in Germany (BTX) and France (MTL). MTL uses YYYYMMDD format. BTX uses DD.MM.YYYY format.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money98 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000 to 12/31/2099

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1900-12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1/2000-12/31/2099

Invalid Date

Blank Date

M/D/y or M/d’Y format

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (French)

Product Summary
Product: Money Version: 98 Category:Compliant
Language: French OS: 32-Bit Win Release Date: 06 Aug 1997
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 4 (no specific Service Pack is required, though Service Pack 3 is recommended)
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200 but

January 1, 1993 – December 31, 2092 for certain online banking Services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two-Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

     

     

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

     

    International (BTX/MTL)

    Money operates with two locale specific online drivers in Germany (BTX) and France (MTL). MTL uses YYYYMMDD format. BTX uses DD.MM.YYYY format.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money98 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000 to 12/31/2099

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1900-12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1/2000-12/31/2099

Invalid Date

Blank Date

M/D/y or M/d’Y format

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (German)

Product Summary
Product: Money Version: 98 Category:Compliant
Language: German OS: 32-Bit Win Release Date: 06 Aug 1997
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 4 (no specific Service Pack is required, though Service Pack 3 is recommended)
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200 but

January 1, 1993 – December 31, 2092 for certain online banking Services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two-Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

     

     

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

     

    International (BTX/MTL)

    Money operates with two locale specific online drivers in Germany (BTX) and France (MTL). MTL uses YYYYMMDD format. BTX uses DD.MM.YYYY format.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money98 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000 to 12/31/2099

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1900-12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1/2000-12/31/2099

Invalid Date

Blank Date

M/D/y or M/d’Y format

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (Italian)

Product Summary
Product: Money Version: 98 Category:Compliant
Language: Italian OS: 32-Bit Win Release Date: 06 Aug 1997
Operational Range: -
Prerequisites: none
Product Dependencies: Windows 95, or Windows NT 4 (no specific Service Pack is required, though Service Pack 3 is recommended)
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200 but

January 1, 1993 – December 31, 2092 for certain online banking Services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two-Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

     

     

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

     

    International (BTX/MTL)

    Money operates with two locale specific online drivers in Germany (BTX) and France (MTL). MTL uses YYYYMMDD format. BTX uses DD.MM.YYYY format.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money98 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000 to 12/31/2099

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1900-12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1/2000-12/31/2099

Invalid Date

Blank Date

M/D/y or M/d’Y format

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (Japanese)

Product Summary
Product: Money Version: 98 Category:Compliant
Language: Japanese OS: 32-Bit Win Release Date: 25 Jul 1998
Operational Range: 01 Jan 1900 - 31 Dec 2200
Prerequisites: None
Product Dependencies: Windows 9x Japanese language version, or Windows NT 4.0 SP4 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 23 Jun 1999
Product Details

This document is applicable to version 6.5.

How the product accepts dates:

Four-Digit Year Dates. Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The fractional portion (which Money does not use often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no fractional part. For example, January 1, 1900 would be represented as the number 2.0.

Two-Digit Year Dates. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

Online Banking Services.

OFX.

Money receives date information from OFX using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

 

ANSER-SPC

Money transmits date information to (and receives from) ANSER-SPC without year information. When Money receives date information without year, Money uses a heuristic rule and treats either as current year or as previous year. If the day in the downloaded statements is in the future, Money assumes that the date is from last year.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  98   (Portuguese (Brazil))

Product Summary
Product: Money Version: 98 Category:Compliant
Language: Portuguese (Brazil) OS: 32-Bit Win Release Date: 06 Aug 1997
Operational Range: -
Prerequisites: None
Product Dependencies: Windows 95, or Windows NT 4 (no specific Service Pack is required, though Service Pack 3 is recommended)
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200 but

January 1, 1993 – December 31, 2092 for certain online banking Services

How the product accepts dates:

  1. Four-Digit Dates.

    Money 98 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  2. Two-Digit Dates.

    Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

     

     

  3. Online Banking Services.

    OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

     

    International (BTX/MTL)

    Money operates with two locale specific online drivers in Germany (BTX) and France (MTL). MTL uses YYYYMMDD format. BTX uses DD.MM.YYYY format.

     

  4. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format. The rules of this heuristic are listed in the table below.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. When Money98 was released, this latter interpretation of the apostrophe format was standard.

Presented below is a table describing how Money interprets QIF data ranges:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000 to 12/31/2099

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1900-12/31/1999

MM/DD’YY

1/1’00 – 12/31’99

1/1/2000-12/31/2099

Invalid Date

Blank Date

M/D/y or M/d’Y format

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (Canadian French)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: Canadian French OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (English)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: English OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 13 Jul 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  7. Money Support for QIF Protocol.

The software update is available at

http://support.microsoft.com/support/kb/articles/Q235/4/44.asp

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (English Australian)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: English Australian OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.

    Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  2. Two Digit Dates.

    Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  3. Online Banking Services.

    OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  4. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (English British)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: English British OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.

    Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  2. Two Digit Dates.

    Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  3. Online Banking Services.

    OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  4. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (French)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: French OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (German)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: German OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (Italian)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: Italian OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (Latin America)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: Latin America OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.

    Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  2. Two Digit Dates.

    Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  3. Online Banking Services.

    OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  4. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (Portuguese (Brazil))

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: Portuguese (Brazil) OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.

    Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  2. Two Digit Dates.

    Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  3. Online Banking Services.

    OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  4. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money  99   (Spanish)

Product Summary
Product: Money Version: 99 Category:Compliant*
Language: Spanish OS: 32-Bit Win Release Date: 29 Jul 1998
Operational Range: -
Prerequisites: For issue #4 only: Download mnyutil.dll update (via SmartConnect or PSS)
Product Dependencies: Windows 95 or later; Windows NT 4.0 or later
Clock Dependencies: Operating system clock is not advanced beyond 2038
Last Updated: 08 Apr 1999
Product Details

Operational Range for Data: Generally January 1, 1900 – December 31, 2200.

January 1, 1993 – December 31, 2092 for certain online banking services

How the product accepts dates:

  1. Four-Digit Dates.
  2. Money 99 uses the OLE Automation "DATE" data type. This is represented as a double (8-byte floating point) value. The whole-number portion represents the number of days since Dec 30, 1899 A.D. The decimal portion (which Money does not use very often) represents the fraction of a day to indicate a time (e.g., 0.25=6:00am, 0.5=noon, etc.). Dates that have no time representation are stored with no decimal part. For example, January 1, 1900 would be represented as the number 2.0.

     

  3. Two Digit Dates.
  4. Users can enter dates in Money as a 2-digit representation (e.g., 99, 00, 01) or a 4-digit representation (e.g., 1999, 2000, 2001).

    Example: in the check register, the user can enter the date 1/2/00. This date is recognized as 1/2/2000.

    The logic that Money uses for converting 2-digit years into the actual year varies depending on what Date data entry field is in question. Money generally uses a heuristic that compares the 2-digit year that has been entered to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

    Dates are displayed in Microsoft Money consistent with the Windows date format setting. Years can be displayed as either 2 or 4-digit.

  5. Online Banking Services.
  6. OFX, OFC, Visa.

    Money transmits date information to (and receives from) OFX, OFC and VISA using a 4-digit format (YYYYMMDD) within the operational date range for the Money product.

     

    Checkfree:

    The Checkfree/ISC/NPC 4.2 specification (dated 1/23/1996) specifies the data format for communications with Checkfree. Checkfree uses six numeric digits to represent dates as YYMMDD.

    Money and Checkfree exchange and translate 2-digit years during Online Banking connections using the following algorithm:

    If YY = 00, it is considered 2000

    If YY < 93, it is considered 20xx (e.g., 2092)

    If YY >= 93, it is considered 19xx (e.g., 1993)

    Applying this formula, the operational date range for Money in connection with online bill payment services with Checkfree is 1/1/1993 to 12/31/2092.

     

  7. Money Support for QIF Protocol.

Microsoft Money supports the QIF data transfer protocol developed by Intuit. Most versions of QIF have represented dates using a 2-digit year format. While the data stored in Money is Year 2000 compliant, Money needs to use a heuristic to determine the best 2-digit date to use when importing to or exporting from the QIF format.

The heuristic compares the 2-digit year that is being imported to the current year. If the Year+1900 is more than 33 years in the past, then Money assumes that the date is in the future and uses Year+2000.

In some versions, QIF uses an apostrophe to denote specific date ranges (for example 1/31'01). In Quicken 98, it is used to indicate the years from 1900 – 1949 and 2050 – 2099. In versions prior to Quicken 98, in Quicken 99, and in Money v. 4.0 and up, an apostrophe is used to indicate the years from 2000 – 2099. It is not possible to determine which range a QIF file is using and Money currently imports these dates as blank.

An available file update fixes an issue wherein transactions with a date in the apostrophe format are imported into Money99 with a blank date (since the format could mean two different date ranges as described above). Dates in the apostrophe format will now be interpreted with the same heuristic as other valid QIF date formats.

The file that needs to be updated for US Money99 is mnyutil.dll version # 7.00.14.2324, dated 3/24/99 2:18 pm, 495,616 bytes. This file will display as version 7.00.2324 in Windows 98 Explorer.

This file is automatically updated for users who use the Update Internet Information feature in Money 99 and also available from Microsoft PSS.

Presented below is a table describing how Money interprets QIF data ranges (with the mnyutil.dll update):

US Money99 Basic and Financial Suite:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966 – 12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966 – 12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

US Money99 P&B:

Transaction Dates in Money

Exported to QIF as

1/1/1900-12/31/1999

M/D/YY

1/1/2000-12/31/2099

M/D’YY

1/1/2100 – 12/31/2200

M/D’YY

QIF Dates

Imported into Money as

MM/DD/YY

1/1/00 – 12/31/99

1/1/1966-12/31/2065*

MM/DD’YY

1/1’00 – 12/31’99

1/1/1966-12/31/2065*

Invalid Date

Blank Date

MM/DD/YYYY or

MM/DD’YYYY

1/1/1900 – 12/31/2200

* These date ranges will change as Today’s date changes according to the heuristic Money uses.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Money Central  RTW 08/06/1999   (English)

Product Summary
Product: Money Central Version: RTW 08/06/1999 Category:Compliant
Language: English OS: Non-specific Release Date: 06 Aug 1999
Operational Range: 01 Jan 1931 - 30 Dec 2030
Prerequisites: None
Product Dependencies: Netscape 3.x or greater (for Windows and the Macintosh); Microsoft Internet Explorer 3.02 and greater (for Windows and Macintosh); WebTV.
Clock Dependencies: None
Last Updated: 06 Oct 1999
Product Details

Money Central can be found at: http://moneycentral.msn.com/home.asp

 

How the product handles dates:

The portfolio manager, finder, and charting controls store dates in text locally as 4-digit years.  When roaming portfolios are turned on for the Portfolio Manager, the date field entries are stored in a standard date field in Microsoft SQL Server 7.0.  The portfolio manager also communicates with certified Brokerage OFX Servers.  For these OFX servers to meet certification standards, they must transmit their date fields in 4-digit year format.

 

The MoneyCentral Quote Server and News Server store dates as 4-digit years as well.

 

Two-digit shortcut handling:

MoneyCentral honors the date settings in the control panel.  If the user chooses to display their “Short Date” or “Long Date” format as 2-digit years, MoneyCentral will display the formatting as 2-digit year format for the display and default entry mechanisms in our ActiveX Portfolio Manager, Charting, and Finder Controls.  Although MoneyCentral can display dates as 2-digit years (depending upon default system date settings), MoneyCentral will store data as 4-digit years to resolve ambiguity.

 

When the user chooses to change the custom date range in the charting tool in the stock and fund research area, by default MoneyCentral interprets 2-digit values from 00 to 30 as the years 2000 to 2030 while 31 to 99 are recognized as the years 1931 to 1999.

 

When the user chooses to add a date field as a criteria in the investment finder, by default MoneyCentral interprets 2-digit values from 00 to 30 as the years 2000 to 2030 while 31 to 99 are recognized as the years 1931 to 1999.

 

When the user chooses to add a new or modify an existing transaction of any type to the ActiveX Portfolio Manager, by default MoneyCentral 2-digit values from 00 to 30 as the years 2000 to 2030 while 31 to 99 are recognized as the years 1931 to 1999 for the date field in these transactions.

 

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Monster Truck Madness  2.0   (English)

Product Summary
Product: Monster Truck Madness Version: 2.0 Category:Compliant
Language: English OS: 32-Bit Win Release Date: 10 Apr 1998
Operational Range: -
Prerequisites: None
Product Dependencies: None
Clock Dependencies: None
Last Updated: 11 Aug 1999
Product Details

How the product handles dates:

None

Two-digit shortcut handling:

Not Applicable

What issues are there?:

None

Recommendations to meet compliance:

None

Common date usage errors:

None

Testing guidelines and recommendations:

None


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Monster Truck Madness  2.0   (French)

Product Summary
Product: Monster Truck Madness Version: 2.0 Category:Compliant
Language: French OS: 32-Bit Win Release Date: 10 Apr 1998
Operational Range: -
Prerequisites: None
Product Dependencies: None
Clock Dependencies: None
Last Updated: 11 Aug 1999
Product Details

How the product handles dates:

None

Two-digit shortcut handling:

Not Applicable

What issues are there?:

None

Recommendations to meet compliance:

None

Common date usage errors:

None

Testing guidelines and recommendations:

None


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Monster Truck Madness  2.0   (German)

Product Summary
Product: Monster Truck Madness Version: 2.0 Category:Compliant
Language: German OS: 32-Bit Win Release Date: 10 Apr 1998
Operational Range: -
Prerequisites: None
Product Dependencies: None
Clock Dependencies: None
Last Updated: 11 Aug 1999
Product Details

How the product handles dates:

None

Two-digit shortcut handling:

Not Applicable

What issues are there?:

None

Recommendations to meet compliance:

None

Common date usage errors:

None

Testing guidelines and recommendations:

None


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Monster Truck Madness  2.0   (Japanese)

Product Summary
Product: Monster Truck Madness Version: 2.0 Category:Compliant
Language: Japanese OS: 32-Bit Win Release Date: 10 Apr 1998
Operational Range: -
Prerequisites: None
Product Dependencies: None
Clock Dependencies: None
Last Updated: 11 Aug 1999
Product Details

How the product handles dates:

None

Two-digit shortcut handling:

Not Applicable

What issues are there?:

None

Recommendations to meet compliance:

None

Common date usage errors:

None

Testing guidelines and recommendations:

None


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Monster Truck Madness  2.0   (Portuguese (Brazil))

Product Summary
Product: Monster Truck Madness Version: 2.0 Category:Compliant
Language: Portuguese (Brazil) OS: 32-Bit Win Release Date: 10 Apr 1998
Operational Range: -
Prerequisites: None
Product Dependencies: None
Clock Dependencies: None
Last Updated: 11 Aug 1999
Product Details

How the product handles dates:

None

Two-digit shortcut handling:

Not Applicable

What issues are there?:

None

Recommendations to meet compliance:

None

Common date usage errors:

None

Testing guidelines and recommendations:

None


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Monster Truck Madness  2.0   (Spanish)

Product Summary
Product: Monster Truck Madness Version: 2.0 Category:Compliant
Language: Spanish OS: 32-Bit Win Release Date: 10 Apr 1998
Operational Range: -
Prerequisites: None
Product Dependencies: None
Clock Dependencies: None
Last Updated: 11 Aug 1999
Product Details

How the product handles dates:

None

Two-digit shortcut handling:

Not Applicable

What issues are there?:

None

Recommendations to meet compliance:

None

Common date usage errors:

None

Testing guidelines and recommendations:

None


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Motocross Madness  1.0   (English)

Product Summary
Product: Motocross Madness Version: 1.0 Category:Compliant
Language: English OS: 32-Bit Win Release Date: 21 Jul 1998
Operational Range: -
Prerequisites: none
Product Dependencies: none
Clock Dependencies: none
Last Updated: 10 Jun 1999
Product Details

How the product handles dates:

There are no date inputting methods; dates are not utilized.

Two-digit shortcut handling:

Does not use 2-digit shortcuts.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Motocross Madness  1.0   (French)

Product Summary
Product: Motocross Madness Version: 1.0 Category:Compliant
Language: French OS: 32-Bit Win Release Date: 21 Jul 1998
Operational Range: -
Prerequisites: none
Product Dependencies: none
Clock Dependencies: none
Last Updated: 01 Jun 1999
Product Details

How the product handles dates:

There are no date inputting methods; dates are not utilized.

Two-digit shortcut handling:

Does not use 2-digit shortcuts.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
Motocross Madness  1.0   (German)

Product Summary
Product: Motocross Madness Version: 1.0 Category:Compliant
Language: German OS: 32-Bit Win Release Date: 21 Jul 1998
Operational Range: -
Prerequisites: none
Product Dependencies: none
Clock Dependencies: none
Last Updated: 01 Jun 1999
Product Details

How the product handles dates:

There are no date inputting methods; dates are not utilized.

Two-digit shortcut handling:

Does not use 2-digit shortcuts.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Basque)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Basque OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Chinese - Simplified)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Chinese - Simplified OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: See below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Chinese - Traditional)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Chinese - Traditional OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Czech)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Czech OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Danish)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Danish OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Dutch)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Dutch OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (English)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: English OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Finnish)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Finnish OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (French)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: French OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (German)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: German OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Greek)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Greek OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Hungarian)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Hungarian OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Icelandic)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Icelandic OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Italian)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Italian OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Japanese)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Japanese OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Korean)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Korean OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Norwegian)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Norwegian OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Polish)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Polish OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Portuguese (Brazil))

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Portuguese (Brazil) OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: See below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Portuguese)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Portuguese OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Russian)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Russian OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Slovak)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Slovak OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Slovenian)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Slovenian OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Spanish)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Spanish OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Swedish)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Swedish OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Data Access Components (MDAC)    (Turkish)

Product Summary
Product: MS Data Access Components (MDAC) Version: Category:Compliant*
Language: Turkish OS: 32-Bit Win Release Date: N/A
Operational Range: -
Prerequisites: see below
Product Dependencies: Windows NT4 Service Pack 3 or higher, or Windows 9x operating systems.
Clock Dependencies: datetime data will correspond to the data source.
Last Updated: 15 Nov 1999
Product Details

Operational Range for Data: Dependent on Data Source (See Note D for more information)

Release Dates: 1997-1999

What’s new:

A separate Year 2000 compliance document is now available for the Microsoft Jet Database Engine.

The Microsoft Jet Database Engine statement contains updated information on Microsoft Jet compliance. Please review it for the latest information.

The latest release of MDAC is 2.1 Service Pack 2 (2.1.2.4202.3). The English (US) version is available for download on http://www.microsoft.com/data/. Localized versions will be posted as they are completed. The initial languages should be posted within 60 days of English (US).

General information:

Microsoft Data Access Components (MDAC) is a collection of data connectivity components. This collection includes MDAC core components (ADO, RDS, OLE DB, ODBC), plus several OLE DB providers and ODBC drivers.

For customer convenience, the components are bundled together into a redistributable setup file, mdac_typ.exe. This setup is available through the web (at http://www.microsoft.com/data/), and through various applications and products.

Separate year 2000 compliance documents have been made available for the core MDAC components, (ADO, RDS, OLE DB and ODBC). Known issues from those documents are already included in this summary. In addition, a year 2000 compliance document is now available for the Microsoft Jet Database Engine.

This MDAC document provides compliance information for MDAC releases, versions 1.5 through 2.1 Service Pack 2.

Version Localization:

Version 1.5: Brazilian, Chinese -Simplified, Chinese -Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Portuguese, Polish, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish

Version 2.0 (with Visual Studio 6.0): Chinese -Simplified, Chinese -Traditional, English (US), French, German, Italian, Japanese, Korean, Spanish

Version 2.0 Service Pack 1 (with Windows NT 4 Service Pack 4):

Brazilian, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish

Version 2.1 (with SQL Server 7.0 and 6.5 Service Pack 5): English (US), French, German, Japanese, Spanish

Version 2.1 Service Pack 1 (2.1.1.3711.6, shipped with Internet Explorer 5 only): Basque, Chinese -Simplified, Chinese –Traditional, Czech, Danish, Dutch, English (US), French, Finnish, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 1 (2.1.1.3711.11 Generally Available release):

Basque, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English (US), Finnish, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish

Version 2.1 Service Pack 2 (2.1.2.4202.3 Generally Available release):

English (US) is available now, and the initial localized versions will be posted within 60 days.

 

The following table lists MDAC releases, compliance before remediation, and sources of remediation.

MDAC Release

Year

Compliance before remediation

Component containing Year 2000 issues (details below )

Remediation alternatives

1.5

1997

Compliant#

Note A – OLE DB Data Coercion,

Note C – Microsoft Jet Database Engine

Updated 1.5 dlls (msdadc.dll, msadce.dll) from Internet Explorer 4.01 Service Pack 2 or from Windows 98 year 2000 package

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location

OR

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11) :

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

 

2.0

1998

Compliant#

Note A – OLE DB Data Coercion

Note B – SQL Server OLE DB provider

Note C – Jet

MDAC 2.0 Service Pack 2: from http://www.microsoft.com/data/

plus latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

OR

MDAC 2.1 Service Pack 1 (2.1.1.3711.11)

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

OR

MDAC 2.1 Service Pack 2 (2.1.2.4202.3) :

from http://www.microsoft.com/data/

Note: this version of MDAC includes Microsoft Jet4, not Jet 3.51. It will not overwrite your existing version of Microsoft Jet 3.51; instead it installs version 4 of Microsoft Jet.

 

2.0 SP1

1998

Compliant#

Note C – Jet

Latest Microsoft Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1

1998

Compliant#

Note C - Jet

Latest Microsoft Jet 4.0 which ships as part of MDAC 2.1 SP1 (2.1.1.3711.11) and MDAC 2.1 SP2 (2.1.2.4202.3)

http://www.microsoft.com/data/

2.0 SP2

1999

Compliant#

Note C- Jet

Latest Jet 3.5x.

See Microsoft Jet Database Engine Year 2000 statement for remediation download location.

2.1 SP1, 3711.6

1999

Compliant

 

No remediation needed.

Subset of 2.1 Service Pack 1, shipped with Internet Explorer 5 only.

2.1 SP1, 2.1.1.3711.11

1999

Compliant

 

No remediation needed.

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 1a.)

2.1 SP2, 2.1.2.4202.3

 

1999

Compliant

 

No remediation needed.

Release is available on http://www.microsoft.com/data/

(Note, this release is sometimes referred to as MDAC 2.1 Service Pack 2.)

 

 

Note A (OLE DB compliance):

The known Year 2000 issues for OLE DB data coercion library are:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a two-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN Data Convert (msdadc.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note B: SQL Server OLE DB provider compliance

The SQL Server OLE DB provider (sqloledb.dll) does not use the core OLE DB Data Coercion library. Instead, it implements its own data coercion module. This module has the same Year 2000 issues described in Note A. Specifically:

If you code to ADO,

AND your ADO Recordset includes Date data types, such as: adDate, adDBDate, adFileTime, or adDBTimeStamp.

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

If you code directly to OLE DB APIs, the same case exists:

If you are converting from a variant (BSTR, VARIANT or PROPVARIANT) to date datatypes, such as:

DBTYPE_DATE

DBTYPE_DBDATE

DBTYPE_DBTIME

DBTYPE_FILETIME

DBTYPE_DBTIMESTAMP

AND you are using a date format in which periods are used instead of slashes for date separator (01.01.98 instead of 01/01/98)

AND you specify a 2-digit year less than 60,

AND you do not specify a time as part of the date/time information

THEN the SQL Server provider (sqloledb.dll) may translate your date as a time. For example, 01.01.01 (January 1, 2001) could be converted to 01:01:01 (December 30, 1899, 1:01:01am).

Note C: Microsoft Jet Database Engine Compliance

See Microsoft Jet Database Engine Year 2000 document for the latest information, including download locations for remediation.

Note D: Oracle ODBC Driver and OLE DB Provider Compliance:

There are no known issues in the Oracle ODBC driver. It should be noted, however, that the driver can expose server conversion behaviour already documented by Oracle in their white paper on year 2000 compliance.

The following scenario results in incorrect "century" information from DATE data under certain circumstances. For instance, if you have data in a database (tablename='testdate') in a timestamp column (C1) with the following values:

C1

---------------------

2/21/1904

2/21/2004

2/21/2104

AND Oracle server and clients are installed with their "default" settings. As such, the default formatting for dates, including timestamps, is: DD-MON-YY.

AND for the sake of this example only, your local "short-date" format of you WinNT client machine is set to 4-digit years.

AND the current date/time on your Oracle SERVER is set to 1/1/2000.

AND then, execute any of the following queries against your database:

    1. SELECT {fn convert(c1, SQL_DATE)} FROM testdate

[this is converting from a timestamp to a date.]

(2) SELECT TO_DATE(C1) FROM testdate

[default formatting]

(3) SELECT TO_DATE(TO_CHAR(C1,'YY-MM-DD'),'YY-MM-DD') FROM testdate

[more complex form of above, employs a user-defined date format mask]

The results will appear as:

C1

---------------------

2/21/2004

2/21/2004

2/21/2004

Note: Only scenario number 1 must be executed via Microsoft's ODBC drive. Scenarios 2 and 3 can be executed directly through Oracle's tools.

Oracle Server, as part of its white paper on Year 2000 issues, documents that certain implicit conversions are to be avoided if possible, but that if they must occur, they will follow certain rules, as dictated by the "format masks" applicable in different situations. With each of the above, the default format mask to be applied is the one stated above ("DD-MON-YY"), where Oracle's documentation again makes it clear that in those conversions some data may be lost. Specifically, the accurate century for dates may be replaced by the CURRENT century as specified by the date/time on the Oracle server machine.

Microsoft's ODBC driver implements the functionality that enables "fn convert()" in scenario number 1. To do so, the ODBC driver relies on a built-in Oracle server function and the implicit conversion it entails. This provides the user with behavior consistent with, and as flexible as, the behavior users get from their Oracle server directly. With default date-formatting, attempting date-to-date conversions as outlined above will result in the outcome above.

 

Note E: ADO 1.5 Date Issue:

The supported date range for MDAC starts no lower than the year 0100. In addtion to the case mentioned in Note D above, there is also an ADO case in which data containing years less than 0100 may not be converted as expected.

 

ADO 1.5. has a date issue. This has been fixed in all subsequent versions of ADO, starting with ADO 2.0. ADO 1.5 shipped with Windows 98, IE4.x and the NT Option Pack.

Under the following circumstances ADO displays incorrect data if the actual year stored in the underlying data store is < 100.

If the year stored in the underlying data store is less than 100, e.g. 98,

AND the OLE DB provider does not provide a conversion from DBDATE and DBTIMESTAMP data types to an automation format. In this case ADO 1.5 will convert the date value itself and display 98 as 1998 or 01 as 1901. DBDATE and DBTIMESTAMP are OLE DB data types that allow a provider a mapping between how they store their data natively and how it gets presented to OLE DB.

DBDATE is has the following structure:

typedef struct tagDBDATE {

SHORT year;

USHORT month;

USHORT day;

} DBDATE;

DBTIMESTAMP has the following structure:

typedef struct tagDBTIMESTAMP {

SHORT year;

USHORT month;

USHORT day;

USHORT hour;

USHORT minute;

USHORT second;

ULONG fraction;

} DBTIMESTAMP;

Since ADO is an automation object all data is exposed to the client via variants. There are conversions from DBDATE and DBTIMESTAMP to variants. If the provider is not capable of providing this conversion OLE DB provides a data conversion library they can use. In order to see this behavior you must have either a DBDATE or DBTIMESTAMP with a year field less than 100 and a provider that does not provide a means to convert its data into a variant as required by ADO, either natively or through our data conversion library. We know of no shipping provider from any vendor that fits this description. With ADO 1.5 even if you store the year as 0050 it will be altered to 1950 even though you may have intended the year 50 A.D.

If you need to work with a year like 50 or 0050 in your data store then upgrade your client to ADO 2.x.

 

NoteF: General information:

1) Common date usage errors:

Use 4-digit years when storing data or calling methods/properties of any of the MDAC data access Application programming interfaces (APIs). Using 2-digit years may reveal year-windowing in your backend or provider, where the boundary cases may not be well known (given an arbitrary backend data store).

2) Testing guidelines and recommendations:

Since there is some "windowing" inherent in the year 2000 compliance features of most backend data stores, users should use 4-digit year formats in dates, particularly when placing data into a store and querying that store.

3) Operational range and early dates:

If you're coding directly to OLE DB, and you’re converting a Variant BSTR to DBDATE, the date "0001-01-01" (January 1, year 1) may be interpreted as "2001-01-01" (January 1, year 2001). This issue affects the years 0001 to 0099. For this reason, the operational range should be considered to start no lower than year 0100.

 

 

How to determine which version of MDAC is installed, and whether you have compliant versions of OLE DB Data Coercion, Microsoft Jet Database Engine, and SQL Server OLE DB provider:

In general, to check the version of a file it is often easiest to use the Find (file) command in the Tools section of Explorer. After selecting the file, right clicking allows you to examine the Properties which includes a Version tab.

    1. For MDAC overall, the key files to check are msdadc.dll and oledb32.dll, which are used for the OLE DB data coercion library.

MDAC version

Msdadc.dll version (for x86)

Oledb32.dll version (for x86)

DataCoercion compliance before remediation

1.5

1.50.3506

None

Compliant#

1.5 remediated

1.50.9801

None

Compliant

2.0

2.00.3002.4

2.00.1706

Compliant#

2.0 SP1

2.00.3002.23

2.00.1706

Compliant

2.0 SP2

2.00.3002.23

2.00.1706

Compliant

2.1

2.10.3513.0

2.10.3513.0

Compliant

2.1 SP1, 3711.6 (shipped with Internet Explorer 5 only)

2.10.3711.2

2.10.3711.2

Compliant

2.1 SP1, 3711.11

2.10.3711.2

2.10.3711.9

Compliant

2.1 SP2, 2.1.2.4202.3

2.10.4202.0

2.10.4202.0

Compliant

 

 

***Please note, MDAC 2.0 SP2 is a super-set of MDAC 2.0 SP1. That is, MDAC 2.0 SP2 contains the MDAC components from 2.0 SP1, plus OLE DB providers for SQL Server and Oracle, and an updated oleaut32.dll.

 

2) Microsoft Jet Database Engine

Since Microsoft Jet can ship outside of MDAC, the Microsoft Jet version should be checked in addition to the MDAC version. See Microsoft Jet Database Engine Year 2000 document for the latest information on compliant versions and remediation alternatives.

 

    1. To confirm the version of the SQL Server OLE DB provider, check sqloledb.dll

SQL Server OLE DB provider version

Compliance

Shipped with MDAC version

07.00.503

Compliant#

MDAC 2.0

07.01.623

Compliant

MDAC 2.0 Service Pack 2,

MDAC 2.1,

MDAC 2.1 Service Pack 1, 3711.11

07.01.690

 

 

Compliant

MDAC 2.1 Service Pack 2, 2.1.2.4202.3

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS Year 2000 Product Analyzer  1.0   (English)

Product Summary
Product: MS Year 2000 Product Analyzer Version: 1.0 Category:Compliant
Language: English OS: 32-Bit Win Release Date: 29 Mar 1999
Operational Range: -
Prerequisites: None
Product Dependencies: Microsoft Windows 95 operating system or later, Windows NT version 3.51 or later
Clock Dependencies: System Clock
Last Updated: 22 Jun 1999
Product Details

How the product handles dates:

Microsoft Year 2000 Product Analyzer does not accept user-provided dates for any functionality.

Microsoft Year 2000 Product Analyzer writes the current date and the date from the Year 2000 compliance database to the report in 4-digit year format.

Two-digit shortcut handling:

Not applicable

 

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Dutch)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Dutch OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: Noone
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (English)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: English OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: NONE
Product Dependencies: NONE
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (French)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: French OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (German)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: German OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Italian)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Italian OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: Noone
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Japanese)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Japanese OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details

This document applies to MS-DOSV Japanese

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Korean)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Korean OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Portuguese)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Portuguese OS: DOS Release Date: N/A
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Russian)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Russian OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: Noone
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Spanish)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Spanish OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  5.x   (Swedish)

Product Summary
Product: MS-DOS Version: 5.x Category:Compliant#
Language: Swedish OS: DOS Release Date: 11 Nov 1991
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: Noone
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details

How the product handles dates:

MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:

If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.

The MS-DOSÒ DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates within this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).

MS-DOSÒ file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ API the program must add 1980.

Product compliance issues:

  • MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
  • MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
  • External commands with switches that use a date parameter require years beyond 2000 to be entered using 4 digits.

Recommendations:

There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.

Testing guidelines and recommendations:

Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If users are going to test for this error, Microsoft recommends that executing the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.

 


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (Danish)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: Danish OS: DOS Release Date: 10 Mar 1993
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details


How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (Dutch)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: Dutch OS: DOS Release Date: 10 Mar 1993
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details


How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (English)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: English OS: DOS Release Date: 10 Mar 1993
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: NONE
Product Dependencies: NONE
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details



How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (Finnish)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: Finnish OS: DOS Release Date: 10 Mar 1993
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details


How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (French)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: French OS: DOS Release Date: 10 Mar 1993
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details



How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (German)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: German OS: DOS Release Date: N/A
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC BIOS
Last Updated: 28 Oct 1999
Product Details


How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Microsoft Year 2000 Resource Center
MS-DOS  6.0   (Italian)

Product Summary
Product: MS-DOS Version: 6.0 Category:Compliant#
Language: Italian OS: DOS Release Date: 10 Mar 1993
Operational Range: 04 Jan 1980 - 31 Dec 2035
Prerequisites: None
Product Dependencies: None
Clock Dependencies: PC Bios
Last Updated: 28 Oct 1999
Product Details


How the product handles dates:
MS-DOS is aware of dates beyond the year 2000. It does not display the full year, but will sort files correctly.

Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 20th century.
The MS-DOS® DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date" upon entry of 2-digit dates in this range. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOS® file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOS® API the program must add 1980.

Product compliance issues:

      

MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
External commands with switches that use a date parameter require years beyond 2000 to be entered using all 4 digits.
MSBACKUP: Naming conventions do not recognize "tens" place.

MSBACKUP from MS-DOS 6.0 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006),   MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.

For example, the following series appeared on the DOS 6.0 system:

CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996

The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.

MSBACKUP does not recognize dates greater than 1999.

MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,

"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"

When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."

For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)

Similarly, when MSBACKUP is backing up, restoring, or comparing files with dates greater than 1999 the file date is not displayed correctly. This is strictly a limitation of the MSBACKUP user interface and does not prevent MSBACKUP from properly backing up, restoring, or comparing files.


Recommendations:
There are no patches available at this time and no plans to develop any patches. The commands described above are infrequently used and easily worked around.

Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the Windows Operating System Interactions with BIOS and Real Time Clock section in the Year 2000 white papers for further information.


Legend of Symbols:
*The product is compliant. User action is recommended, which may include loading a software update or assessing shared technology.
#The product is compliant with an acceptable deviation 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 . Software updates are pending. Future maintenance actions will be recommended shortly.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.


Itemized List of products in each Volume

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://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.

Wednesday, November 17, 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.