Microsoft KB Archive/279401

= PRB: Overlocalized Sort Order Strings in Access/Jet ODBC Driver =

Article ID: 279401

Article Last Modified on 5/17/2007

-

APPLIES TO


 * Microsoft Open Database Connectivity Driver for Access 4.0
 * Microsoft Data Access Components 2.1
 * Microsoft Data Access Components 2.5

-



This article was previously published under Q279401



SYMPTOMS
In a SQLConfigDataSource ODBC function call, the Microsoft Access/Jet 4.0 ODBC driver allows you to specify a sort order as part of the CREATE_DB attribute, where might be General, Arabic, Czech, Japanese, Russian, and so on. The CREATE_DB attribute has the following format: CREATE_DB= For example: CREATE_DB=C:\\LocTest.mdb Czech When you use a localized version of Jet, a sort order that is specified in English fails; however, a sort order that is specified in the localized language succeeds.

For example, a German localized version of the Jet ODBC driver needs to use Allgemein, Arabisch, Tschechisch, Japanisch, Russisch, and so on, as the sort order value.



CAUSE
Microsoft Access offers a localized list of sort orders to use when you create a new database. To change this setting in Access, on the Tools menu, click Options, and then click the General tab. In the New database sort order box, click the language that you want to use.

The Jet 4.0 ODBC driver incorrectly uses this localized list of sort orders to verify sort languages while it creates a new database file. This means that applications that use the CREATE_DB option with the SQLConfigDataSource ODBC function to create new databases with a specific sort order will fail, unless the localized version of the sort order language is provided.



RESOLUTION
To resolve this problem, obtain the latest service pack for Microsoft Data Access Components (MDAC) version 2.5. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

267307 MDAC 2.5 Service Pack 1 Is Included with Windows 2000 Service Pack 1



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

This problem was corrected in MDAC 2.5 Service Pack 1 (SP1), which is also included with Microsoft Windows 2000 SP1.



MORE INFORMATION
This problem has been resolved by adding another function to the Jet Sorting Library dynamic-link library (DLL), Mswstr10.dll, which presents the sort order languages in English. The Jet 4.0 ODBC driver has also been modified so that it calls this new function. For this reason, the MDAC 2.5 SP1/Microsoft Windows 2000 SP1 version of the Jet ODBC driver (Odbcjt32.dll, version 4.0.5303.1) must have the matching version of Mswstr10.dll (4.00.3829.2) on the computer or it will fail to load.

This modified version of the Jet Sorting Library DLL is also installed with Microsoft SQL Server 7.0 Service Pack 3 (SP3), but the ODBC driver is not installed. Therefore, a computer may have the updated Mswstr10.dll file without having MDAC 2.5 SP1 or Windows 2000 SP1 installed. If you need to determine which version of MDAC is on the computer, other files such as Msado15.dll or Oledb32.dll should be used instead.

Note that the MDAC 2.5 RTM version of the Access/Jet ODBC driver (4.0.4403.2) will continue to call into the localized sort order function even if the newer Jet Sorting Library DLL exists on the computer. It is necessary to install the MDAC 2.5 SP1 version of the driver (4.0.5303.1) in order to completely correct this problem.

