SYMPTOMS
When an attempt is made to change the current qualifier on the second
statement handle with results pending on the first statement handle,
SQL_ERROR is returned, as expected. However, when SQLError is called to
retrieve the error information, no error message or SQLState information is
returned.
For example, consider the following sequence of calls:
SQLAllocEnv(phenv)
SQLAllocConnect(henv,phdbc)
SQLAllocStmt(hdbc,phstmt1)
// assume there exists a table called test
SQLExecDirect(hstmt1,"Select * from test",cbSQLStr)
// Attempt to change current qualifier, let C:\NEW be a valid qualifier
// This returns SQL_ERROR as expected
SQLSetConnectOption(hdbc,SQL_CURRENT_QUALIFIER,"C:\NEW")
Returns SQL_ERROR
SQLError(henv,hdbc,hstmt1,szSQLState,pfNativeError,SZErrorMsg)
Returns SQLSTATE= 24000, szErrorMsg="Invalid cursor state"
This is as expected.
However, at this point, if another statement handle is allocated and
another attempt is made to change the current qualifier, the
SQLSetConnectOption call returns SQL_ERROR, but it does not return any
error information when SQLError is called for the second statement handle.
SQLAllocStmt(hdbc,phstmt2)
// Returns SQL_ERROR
SQLSetConnectOption(hdbc,SQL_CURRENT_QUALIFIER,"C:\NEW")
// Does not return any error information
SQLError(henv,hdbc,hstmt2,szSQLState,pfNativeError,SZErrorMsg)
This should return the same error information as for the previous
SQLSetConnectOption call.