Modifiche del comportamento

Le modifiche comportamentali sono quelle per le quali la sintassi dell'interfaccia rimane invariata, ma la semantica è stata modificata. Per queste modifiche, funzionalità usate in ODBC 2. x si comporta in modo diverso rispetto alla stessa funzionalità di ODBC 3. x.

Indica se un'applicazione presenta ODBC 2. Comportamento x o ODBC 3. Il comportamento di x è determinato dall'attributo SQL_ATTR_ODBC_VERSION'ambiente. Questo valore a 32 bit è impostato su SQL_OV_ODBC2 per visualizzare ODBC 2. il comportamento di x e SQL_OV_ODBC3 mostrare ODBC 3. Comportamento x.

L SQL_ATTR_ODBC_VERSION'attributo di ambiente viene impostato da una chiamata a SQLSetEnvAttr. Dopo che un'applicazione chiama SQLAllocHandle per allocare un handle di ambiente, deve chiamare immediatamente SQLSetEnvAttr per impostare il comportamento che presenta. Di conseguenza, è disponibile un nuovo stato dell'ambiente per descrivere l'handle dell'ambiente in uno stato allocato, ma senza versione. Per altre informazioni, vedere Appendice B: Tabelle di transizione dello stato ODBC.

Un'applicazione indica il comportamento che presenta con l'attributo SQL_ATTR_ODBC_VERSION environment, ma l'attributo non ha alcun effetto sulla connessione dell'applicazione con ODBC 2. x o ODBC 3. x driver. Oggetto ODBC 3. L'applicazione x può connettersi a odbc 2. x o 3. x driver, indipendentemente dall'impostazione dell'attributo di ambiente.

ODBC 3. Le applicazioni x non devono mai chiamare SQLAllocEnv. Di conseguenza, se Gestione driver riceve una chiamata a SQLAllocEnv, riconosce l'applicazione come ODBC 2. applicazione x.

L SQL_ATTR_ODBC_VERSION'attributo influisce su tre diversi aspetti di ODBC 3. Comportamento di x driver:

  • SQLSTATE

  • Tipi di dati per data, ora e timestamp

  • L'argomento CatalogName in SQLTables accetta i criteri di ricerca in ODBC 3. x, ma non in ODBC 2. x

L'impostazione dell'SQL_ATTR_ODBC_VERSION di ambiente non influisce su SQLSetParam o SQLBindParam. ANCHE SQLColAttribute non è interessato da questo bit. Anche se SQLColAttribute restituisce attributi interessati dalla versione di ODBC (tipo di data, precisione, scala e lunghezza), il comportamento previsto è determinato dal valore dell'argomento FieldIdentifier. Quando FieldIdentifier è uguale a SQL_DESC_TYPE, SQLColAttribute restituisce ODBC 3. codici x per data, ora e timestamp; quando FieldIdentifier è uguale a SQL_COLUMN_TYPE, SQLColAttribute restituisce ODBC 2. Codici x per data, ora e timestamp.

In questa sezione vengono trattati gli argomenti seguenti.