Share via


Dichiarazione della versione ODBC dell'applicazione

Prima di allocare una connessione, un’applicazione deve impostare l'attributo di ambiente SQL_ATTR_ODBC_VERSION. Questo attributo indica che l'applicazione segue la specifica ODBC 2.x o ODBC 3.x quando si usano gli elementi seguenti:

  • SQLSTATE. Molti valori SQLSTATE in ODBC 2.x sono diversi rispetto a quelli in ODBC 3.x.

  • Identificatori di tipo data, ora e timestamp. Nella tabella seguente vengono illustrati gli identificatori di tipo per i dati relativi a data, ora e timestamp in ODBC 2.x e ODBC 3.x.

    ODBC 2.x ODBC 3.x
    Identificatori dei tipi SQL
    SQL_DATE SQL_TYPE_DATE
    SQL_TIME SQL_TYPE_TIME
    SQL_TIMESTAMP SQL_TYPE_TIMESTAMP
    Identificatori di tipo C
    SQL_C_DATE SQL_C_TYPE_DATE
    SQL_C_TIME SQL_C_TYPE_TIME
    SQL_C_TIMESTAMP SQL_C_TYPE_TIMESTAMP
  • Argomento CatalogNamein SQLTables. In ODBC 2.x i caratteri jolly ("%" e "_") dell'argomento CatalogName vengono trattati come valori letterali. In ODBC 3.x vengono considerati come caratteri jolly. Pertanto, un'applicazione che segue la specifica ODBC 2.x non può usarli come caratteri jolly e non ne esegue l'escape quando vengono usati come valori letterali. Un'applicazione che segue la specifica ODBC 3.x può usarli come caratteri jolly o eseguire l'escape e usarli come valori letterali. Per altre informazioni, vedere Argomenti nelle Funzioni catalogo.

Gestione driver ODBC 3.x e i driver ODBC 3.x controllano la versione della specifica ODBC su cui viene scritta un'applicazione e rispondono di conseguenza. Ad esempio, se l'applicazione segue la specifica ODBC 2.x e chiama SQLExecute prima di chiamare SQLPrepare, Gestione driver ODBC 3.x restituisce SQLSTATE S1010 (errore di sequenza delle funzioni). Se l'applicazione segue la specifica ODBC 3.x, Gestione driver restituisce SQLSTATE HY010 (errore di sequenza delle funzioni). Per altre informazioni, vedere Compatibilità con le versioni precedenti e Conformità degli standard.

Importante

Le applicazioni che seguono la specifica ODBC 3.x devono usare il codice condizionale per evitare l'uso di funzionalità nuove per ODBC 3.x, quando si usano driver ODBC 2.x. I driver ODBC 2.x non supportano funzionalità nuove di ODBC 3.x solo perché l'applicazione dichiara che segue la specifica ODBC 3.x. Inoltre, i driver ODBC 3.x non cessano di supportare le funzionalità nuove per ODBC 3.x solo perché l'applicazione dichiara di seguire la specifica ODBC 2.x.