Microsoft KB Archive/169469

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 15:34, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Base


BUG: SQLState S1000 with SQL_AUTOCOMMIT_OFF/SQLTransact

Article ID: 169469

Article Last Modified on 2/12/2007



APPLIES TO

  • Microsoft Open Database Connectivity 2.5
  • Microsoft Open Database Connectivity 3.0
  • Microsoft Access 97 Standard Edition



This article was previously published under Q169469

BUG #: 4841 (Brazos)

SYMPTOMS

If an application does the following in the Microsoft Access 7.0 or 97 version of the ODBC drivers more than seven times

SQLSetConnectOption(hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF);
SQLTransact(henv, hdbc, SQL_COMMIT);


The error generated is:

  • szSqlState = "S1000", *pfNativeError = -1103,
  • szErrorMsg = "[Microsoft][ODBC Microsoft Access 97 Driver] "

If the application calls SQLExecDirect with any SQL statement, the error generated is:

szSqlState = "S1000", *pfNativeError = -1103, *pcbErrorMsg = 110
szErrorMsg="[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't start transaction; too many transactions already nested."

WORKAROUND

To work around this problem, do not set the SQL_AUTOCOMMIT option repeatedly within a connection. The SQL_AUTOCOMMIT option is a per-connection option. Once this option is set, it stays valid until the connection is dropped; an ODBC application does not have to set the option repeatedly within a connection.

STATUS

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


Additional query words: SQLEndTran SQLSetConnectAttr

Keywords: kbbug kbprogramming KB169469