Microsoft KB Archive/265885

= FIX: Cannot Get OLE DB Errors on Japanese Windows 95 and Windows 98 =

Article ID: 265885

Article Last Modified on 2/12/2007

-

APPLIES TO


 * Microsoft OLE DB 2.5
 * Microsoft Data Access Components 2.5
 * Microsoft Windows 98 Standard Edition
 * Microsoft Windows 95

-



This article was previously published under Q265885



SYMPTOMS
When you run an OLE DB or ActiveX Data Objects (ADO) application on Japanese Windows 95 or Japanese Windows 98 with MDAC 2.5 installed, Japanese error messages that are raised by the OLE DB Core Services layer are blank.

When an error in the OLE DB Core Services layer occurs in an application, you may receive only the error number without Japanese error message strings. If the error is from OLE DB Provider itself, you can get Japanese error messages as usual.

This error occurs only on Japanese Windows 95 and Japanese Windows 98, but does not occur on Japanese Windows 98 Second Edition, Microsoft Windows NT 4.0, or Microsoft Windows 2000.



CAUSE
The Win32 FormatMessageA API in Japanese Windows 95 and Japanese Windows 98 does not work correctly with the Unicode message table that is used by OLE DB.



RESOLUTION
A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next Microsoft Data Access Components service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The version of this fix should have the following file attributes or later:

  Date      Version      Size             File name -  5/03/00   2.51.5303.0   483,600 bytes   Oledb32.dll 5/18/00  2.51.5303.0    57,616 bytes   Oledb32a.dll

Installation Procedure
To install the fix, perform the following steps:
 * 1) Close or stop any applications or services that are using the Microsoft OLE DB components. These may include Microsoft Personal Web Server (PWS), Microsoft Transaction Server (MTS), Microsoft Data Engine (MSDE), and any Microsoft ActiveX Data Objects (ADO) or OLE DB applications.
 * 2) Download the fix into a temporary folder, and then run it to extract the files listed in the table.
 * 3) Rename the current version of the Oledb32.dll file. (This file may be located in the Program Files\Common Files\System\Ole db folder.)
 * 4) Copy the extracted files to the same location.
 * 5) Restart any services you stopped in step 1.



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



Steps to Reproduce Behavior
The following ADO code is an example of a situation in which this error will occur. It can also be reproduced with a pure OLE DB application, because the error is in OLE DB, not ADO. Sub BlankErrMsg On Error GoTo ErrTrap Dim conn As New ADODB.Connection Dim cmd As New ADODB.Command Dim strConnect As String

'Note that it does not matter which OLE DB provider you use strConnect = &quot;PROVIDER=SQLOLEDB;SERVER=myServer;DATABASE=myDatabase;USER ID=myUser;PASSWORD=myPassword;&quot; conn.Open strConnect 'Intentionally cause OLE DB errors to occur Debug.Print &quot;*** Execute Command without setting CommandText ***&quot; Set cmd.ActiveConnection = conn cmd.Execute Debug.Print &quot;*** CommitTrans without BeginTrans ***&quot; conn.CommitTrans Debug.Print &quot;*** BeginTrans, BeginTrans ***&quot; conn.BeginTrans conn.BeginTrans Exit Sub

ErrTrap: Dim e As ADODB.Error For Each e In conn.Errors Debug.Print Hex(e.Number) & &quot; &quot; & e.Description Next Resume Next End Sub The code causes the following to be output in the Immediate window: *** Execute Command without setting CommandText *** 80040E0C

8004D00E 8004D013 After the hotfix has been applied, you will see the appropriate error messages output following each error code.
 * CommitTrans without BeginTrans ***
 * BeginTrans, BeginTrans ***

Additional query words: oledb error message

Keywords: kbbug kbfix kbqfe KB265885

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.