Mapping di SQLSetStmtOption
Quando un'applicazione chiama SQLSetStmtOption tramite un driver ODBC 3.x , la chiamata a
SQLSetStmtOption(StatementHandle, fOption, vParam)
il risultato sarà il seguente:
Se fOption indica un attributo di istruzione definito da ODBC che è una stringa, Gestione driver chiama
SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, SQL_NTS)
Se fOption indica un attributo di istruzione definito da ODBC che restituisce un valore intero a 32 bit, Gestione driver chiama
SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, 0)
Se fOption indica un attributo di istruzione definito dal driver, Gestione driver chiama
SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, BufferLength)
Nei tre casi precedenti, l'argomento StatementHandle viene impostato sul valore in hstmt, l'argomento Attribute viene impostato sul valore in fOption e l'argomento ValuePtr viene impostato sul valore come vParam.
Poiché Gestione driver non sa se l'attributo dell'istruzione definita dal driver richiede un valore intero stringa o a 32 bit, deve passare un valore valido per l'argomento StringLength di SQLSetStmtAttr. Se il driver ha definito semantiche speciali per gli attributi di istruzione definiti dal driver e deve essere chiamato tramite SQLSetStmtOption, deve supportare SQLSetStmtOption.
Se un'applicazione chiama SQLSetStmtOption per impostare un'opzione di istruzione specifica del driver in un driver ODBC 3.x e l'opzione è stata definita in una versione ODBC 2.x del driver, è necessario definire una nuova costante manifesto per l'opzione nel driver ODBC 3.x . Se la costante manifesto precedente viene usata nella chiamata a SQLSetStmtOption, Gestione driver chiamerà SQLSetStmtAttr con l'argomento StringLength impostato su 0.
Quando un'applicazione chiama SQLSetStmtAttr per impostare SQL_ATTR_USE_BOOKMARKS su SQL_UB_ON in un driver ODBC 3.x , l'attributo dell'istruzione SQL_ATTR_USE_BOOKMARKS viene impostato su SQL_UB_FIXED. SQL_UB_ON è la stessa costante di SQL_UB_FIXED. Gestione driver passa SQL_UB_FIXED al driver. SQL_UB_FIXED è stato deprecato in ODBC 3.x, ma un driver ODBC 3.x deve implementarlo per funzionare con applicazioni ODBC 2.x che usano segnalibri a lunghezza fissa.
Per un driver ODBC 3.x , Gestione driver non verifica più se l'opzione è compresa tra SQL_STMT_OPT_MIN e SQL_STMT_OPT_MAX o è maggiore di SQL_CONNECT_OPT_DRVR_START.