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

This article was previously published under Q279401
This article has been archived. It is offered "as is" and will no longer be updated.
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 <sort order> might be General, Arabic, Czech, Japanese, Russian, and so on. The CREATE_DB attribute has the following format:
CREATE_DB=<path name> <sort order>				
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.
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.
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 theMicrosoft Knowledge Base:
267307 MDAC 2.5 Service Pack 1 Is Included with Windows 2000 Service Pack 1
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.
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.

The Microsoft Data Access Components version 2.5 SP1 can be downloaded from the following Microsoft Universal Data Access Download Page Web site.For additional information about how to obtain the latest Microsoft Windows 2000 Service Pack, click the article number below to view the article in the Microsoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack
For additional information on creating Access databases with SQLConfigDataSource(), click the article number below to view the article in the Microsoft Knowledge Base:
149558 HOWTO: Create an .MDB File for Microsoft Access Databases
localized create_db sqlconfigdatasource sp3 odbcjt32

Article ID: 279401 - Last Review: 02/28/2014 04:22:54 - Revision: 3.2

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

  • kbnosurvey kbarchive kbbug kbjet kbmdac250sp1fix kbprb KB279401