|
 |
 |
 |
 |
Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved. Terms
of Use |
Trademarks
Article ID: 277033 - Last Review: September 26, 2005 - Revision: 5.3 FIX: SQL_BIGINT in 2.x ODBC Driver is mapped to SQL_C_SBIGINT 3.0 datatypeThis article was previously published under Q277033
When the Microsoft OLEDB Provider for ODBC driver (MSDASQL) is using an ODBC driver that is ODBC 2.x compliant, and the driver reports a SQL_BIGINT datatype (-5), the ODBC provider (MSDASQL) chooses a C datatype of SQL_C_SBIGINT for use in the SQLBindCol() ODBC API function. However, because SQL_C_SBIGINT is an ODBC 3.x datatype, this generates the following error from the ODBC Driver Manager:
S1003 [Microsoft][ODBC Driver Manager] Driver does not support this parameter
This problem occurs in all releases of the ODBC provider (Msdasql.dll) version 2.50.4403.6 (MDAC 2.5 RTM) and later.
When the ODBC provider first loads and uses an ODBC driver, the driver is queried to see what version of ODBC it supports, 2.x or 3.x. This information is stored in the connection handle class.
The provider keeps internal structures to do the datatype mapping between SQL datatypes (such as SQL_CHAR) and C datatypes (such as SQL_C_CHAR). The provider is not checking the version that it stored for the ODBC driver before performing the SQL-to-C datatype mapping, and simply maps the SQL datatype of SQL_BIGINT to an ODBC 3.x datatype of SQL_C_SBIGINT. This datatype is not recognized in an ODBC 2.x driver, and causes the ODBC Driver Manager to produce an error.
To resolve this problem, obtain the latest service pack for Microsoft MDAC 2.5. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
293312Â
(http://kbalertz.com/Feedback.aspx?kbNumber=293312/
)
How to obtain the latest MDAC 2.5 service pack
To resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
300635Â
(http://kbalertz.com/Feedback.aspx?kbNumber=300635/
)
How to obtain the latest MDAC 2.6 service pack
Hotfix
The MDAC 2.5 and MDAC 2.6 version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel. MDAC 2.5 English
Date Version Size File name
------------------------------------------------------
01/31/2001 2.53.6131.0 303,376 Msdasql.dll
01/31/2001 2.53.6131.0 16,384 Msdasqlr.dll
01/31/2001 2.53.6131.0 78,096 Msdatl2.dll
01/31/2001 2.53.6131.0 53,520 Msdatt.dll
03/14/2001 473,280 Q277033_W2K_SP3_x86_en.EXE
MDAC 2.5 French
Date Version Size File name
-------------------------------------------------------
01/31/2001 2.53.6131.0 303,376 Msdasql.dll
02/14/2001 2.53.6131.0 16,384 Msdasqlr.dll
01/31/2001 2.53.6131.0 78,096 Msdatl2.dll
01/31/2001 2.53.6131.0 53,520 Msdatt.dll
02/28/2001 484,408 Q277033_w2k_sp3_x86_FR.EXE
MDAC 2.6 English
Date Version Size File name
-------------------------------------------------------
01/31/2001 2.61.7131.0 311,568 Msdasql.dll
01/31/2001 2.61.7131.0 16,384 Msdasqlr.dll
01/31/2001 2.61.7131.0 94,480 Msdatl3.dll
01/31/2001 2.61.7131.0 24,848 Msdatt.dll
03/05/2001 269,312 Q277033_MDAC26_SP1_x86_en.exe
MDAC 2.6 French
Date Version Size File name
--------------------------------------------------------
01/31/2001 2.61.7131.0 311,568 Msdasql.dll
02/14/2001 2.61.7131.0 16,384 Msdasqlr.dll
01/31/2001 2.61.7131.0 94,480 Msdatl3.dll
01/31/2001 2.61.7131.0 24,848 Msdatt.dll
03/09/2001 271,360 Q277033_MDAC26_SP1_x86_fr.exe
Windows 2000
To resolve this problem, obtain the latest service pack for Windows 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
260910Â
(http://kbalertz.com/Feedback.aspx?kbNumber=260910/
)
How to obtain the latest Windows 2000 service pack
The Windows 2000 Service Pack 3 version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Date Time Version Size File name
--------------------------------------------------------
2/28/2001 12:24p 2.53.6131.0 303,376 Msdasql.dll
2/28/2001 12:24p 2.53.6131.0 16,384 Msdasqlr.dll
2/28/2001 12:24p 2.53.6131.0 78,096 Msdatl2.dll
2/28/2001 12:24p 2.53.6131.0 53,520 Msdatt.dll
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in Microsoft MDAC 2.5 Service Pack 3. This problem was first corrected in Microsoft Data Access Components 2.6 Service Pack 1. Windows 2000Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in Windows 2000 Service Pack 3.
In OLE DB, SQL_BIGINT datatypes are DBTYPE_I8, which is an 8-byte signed integer. However, per the ODBC 2.x specifications, the default mapping for SQL_BIGINT in a 2.x driver is SQL_C_CHAR.
The ODBC provider (MSDASQL) has been modified so that SQL_BIGINT datatypes are now internally mapped to SQL_C_CHAR when using an ODBC 2.x driver, and then converted to DBTYPE_I8 when requested by OLE DB.
To determine if an ODBC driver is encountering this problem, examine an ODBC trace to see if a SQL_BIGINT datatype is being used. An example of the datatype attributes that will generate the error is shown below.
inetinfo 924-1bc EXIT SQLDescribeColW with return code 0 (SQL_SUCCESS)
HSTMT 01862458
UWORD 1
WCHAR * 0x00000000
SWORD 0
SWORD * 0x00000000
SWORD * 0x0277ECB4 (-5)
SQLLEN * 0x0277ECC0 (19)
SWORD * 0x0277ECD0 (0)
SWORD * 0x0277ECAA (0)
This shows the SQL datatype (6th argument) being reported as SQL_BIGINT (-5) with a column size (7th argument) of 19.
The Microsoft ODBC drivers (for instance, the Microsoft SQL Server ODBC Driver) should not generate this error because they are mostly ODBC 3.x compliant. The Microsoft ODBC Driver for Oracle is ODBC 2.x compliant, but does not support the SQL_BIGINT datatype. Third-party drivers that are ODBC 2.x compliant and also support SQL_BIGINT may experience this problem. REFERENCES
This fix also contains a resolution for the problem that is outlined in the following article in the Microsoft Knowledge Base:
274604Â
(http://kbalertz.com/Feedback.aspx?kbNumber=274604/
)
MSDASQL Provider improperly handles negatively scaled SQL_NUMERIC_STRUCT values
APPLIES TO- Microsoft Windows 2000 Server
- Microsoft OLE DB Provider for ODBC 2.0
- Microsoft Data Access Components 2.5
- Microsoft Data Access Components 2.5 Service Pack 1
- Microsoft Data Access Components 2.6
- Microsoft ActiveX Data Objects 2.6
- Microsoft ActiveX Data Objects 2.5
| kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kbmdac260sp1fix kbwin2000sp3fix KB277033 |
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
|
 |
 |
 |
 |
 |
 |
 |
| |