BUG: Value of cbDSN in SQLConnect is Not Mapped Correctly

Last reviewed: September 9, 1996
Article ID: Q120045
The information in this article applies to:
  • Microsoft Open Database Connectivity, version 2.0

BUG# ODBCSDK2: 2693 (2.0)

SYMPTOMS

When connecting from a 16-bit application to a certain 32-bit driver in a Microsoft Windows NT environment, you may receive an error from the driver about incorrect parameter or argument value. This does not happen when SQLConnect is called from a 32-bit application to a 32-bit driver or from a 16-bit application to a 16-bit driver.

For example, assume that the datasource name is "DsnName" with cbDSN=8. Then, the following calls show the behavior:

   //Allocate environment handle
      SQLAllocEnv(phenv);
   //Allocate connection handle
      SQLAllocConnect(henv,phdbc);
   //Specify szDSN="DsnName" and cbDSN= length of ("DsnName")=8
      SQLConnect(hdbc,"DsnName",8,szUID,cbUID,szAuthStr,cbAuthStr);

In looking at the ODBC trace using 32-bit ODBC Spy, you will find that the value of cbDSN passed is not 8, but a large number (0x3a43).

CAUSE

When connecting from a 16-bit application to a 32-bit driver, the value of cbDSN in SQLConnect is not correctly passed and is mapped to a large value. However, the values of cbUID and cbAuthStr are passed correctly.

STATUS

Microsoft has confirmed this to be a problem in ODBC Driver Manager version 2.0. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


KBCategory: kbusage
KBSubcategory:

Additional reference words: 2.00 ODBC MSVC DM invalid 14915



THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION 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.

Last reviewed: September 9, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.