INF: -T3640 Flag May Block Updates to an ODBC Application

Last reviewed: April 8, 1997
Article ID: Q113674
The information in this article applies to:
  • Microsoft SQL Server, versions 4.21, 6.0, 6.50
  • Microsoft ODBC SQL Server Driver, version 1.02.3731

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:

   ODBC-call failed

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 odbc SSrvWinNT
Version : 4.21 6.0 6.5 1.02.3731
Platform : WINDOWS


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: April 8, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.