Article ID: 113674
Article Last Modified on 12/3/2003
APPLIES TO
- Microsoft SQL Server 4.21a Standard Edition
- Microsoft SQL Server 6.0 Standard Edition
- Microsoft SQL Server 6.5 Standard Edition
- Microsoft ODBC Driver for Microsoft SQL Server 1.0
This article was previously published under Q113674
SUMMARY
Microsoft SQL Server version 4.21 (and later versions) provides a -T3640 flag that provides stored procedure performance enhancements. The flag optimizes stored procedure execution time because it suppresses the sending of individual statement completion information, which reduces network traffic and has a significant effect on stored procedure execution time, especially in wide area network (WAN) environments.
This information is not required by SQL Server/DB-Library (DB-Lib) applications but may affect some ODBC applications. When SQL Server is running with this flag enabled, an ODBC-enabled application using Microsoft ODBC SQL Server driver to attempt to process update queries against tables in SQL Server may fail because SQL Server is no longer sending rows affected information required by some ODBC applications, such as Microsoft Access for Windows.
MORE INFORMATION
In an ODBC application using the Microsoft ODBC SQL Server Driver to communicate with a SQL Server that is running with the -T3640 flag enabled, the ODBC API call, SQLRowCount(), will not be able to provide the number of rows affected after a statement is prepared as a procedure using SQLPrepare() and then executed using SQLExecute.
The effect is that in some ODBC-enabled applications, such as Microsoft Access, when updates are attempted on a SQL Server table that resides on a SQL Server running the -T3640 flag, the update will fail with the error:
No other error message will be returned.
With the -T3640 flag enabled, SQL Server is unable to return the number of rows updated in response to the ODBC API call SQLRowCount(). Other ODBC- enabled applications, whose proper operation depend the number of rows affected by an ODBC SQL query returning from SQLRowCount(), will encounter similar problems. However, if the -T3640 flag is not used, this problem will not occur.
Additional query words: sql6 Windows NT
Keywords: kbinterop KB113674