Mapping di SQLSetConnectOption
Quando si usa ODBC 2.x application chiama SQLSetConnectOption tramite un driver ODBC 3*.x*, la chiamata a
SQLSetConnectOption(hdbc, fOption, vParam)
il risultato sarà il seguente:
Se fOption indica un attributo di connessione definito da ODBC che richiede una stringa, Gestione driver chiama
SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)
Se fOption indica un attributo di connessione definito da ODBC che restituisce un valore intero a 32 bit, Gestione driver chiama
SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)
Se fOption indica un attributo di connessione definito dal driver, Gestione driver chiama
SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)
Nei tre casi precedenti, l'argomento ConnectionHandle viene impostato sul valore in hdbc, l'argomento Attribute viene impostato sul valore in fOption e l'argomento ValuePtr viene impostato sullo stesso valore di vParam.
Poiché Gestione driver non sa se l'attributo di connessione definito dal driver richiede una stringa o un valore intero a 32 bit, deve passare un valore valido per l'argomento BufferLength di SQLSetConnectAttr. Se il driver ha definito una semantica speciale per gli attributi di connessione definiti dal driver e deve essere chiamato tramite SQLSetConnectOption, deve supportare SQLSetConnectOption.
Se si usa ODBC 2.X application chiama SQLSetConnectOption per impostare un'opzione di istruzione specifica del driver in un driver ODBC 3*.x* e l'opzione è stata definita in un'istruzione ODBC 2.X versione del driver, deve essere definita una nuova costante manifesto per l'opzione nel driver ODBC 3*.x*. Se nella chiamata a SQLSetConnectOption viene usata la costante manifesto precedente, Gestione driver chiamerà SQLSetConnectAttr con l'argomento StringLength impostato su 0.
Per un driver ODBC 3*.x*, Gestione driver non verifica più se fOption si trova tra SQL_CONN_OPT_MIN e SQL_CONN_OPT_MAX oppure è maggiore di SQL_CONNECT_OPT_DRVR_START.
Impostazione delle opzioni di istruzione a livello di connessione
In ODBC 2.x, un'applicazione potrebbe chiamare SQLSetConnectOption per impostare un'opzione di istruzione. Al termine, il driver stabilisce l'opzione di istruzione come predefinita per tutte le istruzioni allocate successivamente per tale connessione. Viene definito dal driver se il driver imposta l'opzione di istruzione per eventuali istruzioni esistenti associate alla connessione specificata.
Questa possibilità è stata deprecata in ODBC 3*.x*. I driver ODBC 3*.x* devono supportare solo l'impostazione di ODBC 2.Attributi di istruzione x a livello di connessione se si desidera utilizzare ODBC 2.x applicazioni che eseguono questa operazione. Le applicazioni ODBC 3*.x* non devono mai impostare attributi di istruzione a livello di connessione. Gli attributi dell'istruzione ODBC 3*.x* non possono essere impostati a livello di connessione, ad eccezione degli attributi SQL_ATTR_METADATA_ID e SQL_ATTR_ASYNC_ENABLE, che sono sia attributi di connessione che attributi di istruzione e possono essere impostati a livello di connessione o a livello di istruzione.