Supporto per SQLGetInfo

Quando si usa ODBC 2.X application chiama SQLGetInfo a un driver ODBC 3*.x*, è necessario supportare gli argomenti InfoType nella tabella seguente.

Infotype Resi
SQL_ALTER_TABLE (ODBC 2.0) Nota: questo tipo di informazioni non è deprecato. Le maschera di bit nella colonna a destra sono deprecate. Maschera di bit SQLINTEGER che enumera le clausole nell'istruzione ALTER TABLE supportata dall'origine dati.

Per determinare quali clausole sono supportate, vengono usate le maschera di bit seguenti:

SQL_AT_DROP_COLUMN = È supportata la possibilità di eliminare colonne. Indipendentemente dal fatto che ciò comporti un comportamento a catena o di limitazione, è definito dal driver. (ODBC 2.0)

SQL_AT_ADD_COLUMN = È supportata la possibilità di aggiungere più colonne in una singola istruzione ALTER TABLE. Questo bit non si combina con altri bit di SQL_AT_ADD_COLUMN_XXX o bit SQL_AT_CONSTRAINT_XXX. (ODBC 2.0)
SQL_FETCH_DIRECTION (ODBC 1.0)

Il tipo di informazioni è stato introdotto in ODBC 1.0; ogni maschera di bit viene etichettata con la versione in cui è stata introdotta.
Maschera di bit SQLINTEGER che enumera le opzioni di direzione di recupero supportate.

Le maschera di bit seguenti vengono usate insieme al flag per determinare quali opzioni sono supportate:

SQL_FD_FETCH_NEXT (ODBC 1.0) SQL_FD_FETCH_FIRST (ODBC 1.0) SQL_FD_FETCH_LAST (ODBC 1.0) SQL_FD_FETCH_PRIOR (ODBC 1.0) SQL_FD_FETCH_ABSOLUTE (ODBC 1.0) SQL_FD_FETCH_RELATIVE (ODBC 1.0) SQL_FD_FETCH_BOOKMARK (ODBC 2.0)
SQL_LOCK_TYPES (ODBC 2.0) Maschera di bit SQLINTEGER che enumera i tipi di blocco supportati per l'argomento fLock in SQLSetPos.

Le maschera di bit seguenti vengono usate insieme al flag per determinare quali tipi di blocco sono supportati:

SQL_LCK_NO_CHANGE SQL_LCK_EXCLUSIVE SQL_LCK_UNLOCK
SQL_ODBC_API_CONFORMANCE (ODBC 1.0) Valore SQLSMALLINT che indica il livello di conformità ODBC.

SQL_OAC_NONE = Nessuno

SQL_OAC_LEVEL1 = Livello 1 supportato

SQL_OAC_LEVEL2 = Livello 2 supportato
SQL_ODBC_SQL_CONFORMANCE (ODBC 1.0) Valore SQLSMALLINT che indica la grammatica SQL supportata dal driver. Vedere Appendice C: Grammatica SQL per una definizione dei livelli di conformità SQL.

SQL_OSC_MINIMUM = Grammatica minima supportata

SQL_OSC_CORE = Grammatica di base supportata

SQL_OSC_EXTENDED = Grammatica estesa supportata
SQL_POS_OPERATIONS (ODBC 2.0) Maschera di bit SQLINTEGER che enumera le operazioni supportate in SQLSetPos.

Le maschera di bit seguenti vengono usate insieme al flag per determinare quali opzioni sono supportate:

SQL_POS_POSITION (ODBC 2.0) SQL_POS_REFRESH (ODBC 2.0) SQL_POS_UPDATE (ODBC 2.0) SQL_POS_DELETE (ODBC 2.0) SQL_POS_ADD (ODBC 2.0)
SQL_POSITIONED_STATEMENTS (ODBC 2.0) Maschera di bit SQLINTEGER che enumera le istruzioni SQL posizionate supportate.

Per determinare quali istruzioni sono supportate, vengono usate le maschera di bit seguenti:

SQL_PS_POSITIONED_DELETE SQL_PS_POSITIONED_UPDATE SQL_PS_SELECT_FOR_UPDATE
SQL_SCROLL_CONCURRENCY (ODBC 1.0) Maschera di bit SQLINTEGER che enumera le opzioni di controllo della concorrenza supportate per il cursore.

Per determinare quali opzioni sono supportate, vengono usate le maschera di bit seguenti:

SQL_SCCO_READ_ONLY = Cursor è di sola lettura. Non sono consentiti aggiornamenti.

SQL_SCCO_LOCK = Cursor utilizza il livello di blocco più basso sufficiente per garantire che la riga possa essere aggiornata.

SQL_SCCO_OPT_ROWVER = Il cursore usa il controllo della concorrenza ottimistica, confrontando le versioni delle righe, ad esempio SQLBase ROWID o Sybase TIMESTAMP.

SQL_SCCO_OPT_VALUES = Cursor usa il controllo della concorrenza ottimistica, confrontando i valori.
SQL_STATIC_SENSITIVITY (ODBC 2.0) Maschera di bit SQLINTEGER che enumera se le modifiche apportate da un'applicazione a un cursore statico o basato su keyset tramite SQLSetPos o istruzioni di eliminazione o aggiornamento posizionato possono essere rilevate dall'applicazione.

SQL_SS_ADDITIONS = Le righe aggiunte sono visibili al cursore; il cursore può scorrere fino a queste righe. Dove queste righe vengono aggiunte al cursore dipende dal driver.

SQL_SS_DELETIONS = Le righe eliminate non sono più disponibili per il cursore e non lasciano un "foro" nel set di risultati; dopo che il cursore scorre da una riga eliminata, non può tornare a tale riga.

SQL_SS_UPDATES = Gli aggiornamenti alle righe sono visibili al cursore; se il cursore scorre da e torna a una riga aggiornata, i dati restituiti dal cursore sono i dati aggiornati, non i dati originali. Questa opzione si applica solo ai cursori statici o agli aggiornamenti sui cursori basati su keyset che non aggiornano la chiave. Questa opzione non si applica a un cursore dinamico o nel caso in cui una chiave venga modificata in un cursore misto.

Se un'applicazione può rilevare le modifiche apportate al set di risultati da altri utenti, inclusi altri cursori nella stessa applicazione, dipende dal tipo di cursore.

Un'applicazione ODBC 3*.x* che utilizza un driver ODBC 3*.x* non deve chiamare SQLGetInfo con gli argomenti InfoType descritti nella tabella precedente, ma deve usare gli argomenti InfoType ODBC 3*.x* elencati nel paragrafo seguente. Non esiste una corrispondenza uno-a-uno tra gli argomenti InfoType usati in ODBC 2.x e quelli usati in ODBC 3*.x*. Applicazione ODBC 3*.x* che funziona con ODBC 2.X driver, d'altra parte, deve usare gli argomenti InfoType descritti in precedenza.

Alcuni tipi di informazioni nella tabella precedente sono deprecati a favore dei tipi di informazioni sugli attributi del cursore. Questi tipi di informazioni deprecati sono SQL_FETCH_DIRECTION, SQL_LOCK_TYPES, SQL_POS_OPERATIONS, SQL_POSITIONED_STATEMENTS, SQL_SCROLL_CONCURRENCY e SQL_STATIC_SENSITIVITY. I nuovi tipi di attributi del cursore sono SQL_XXX_CURSOR_ATTRIBUTES1and SQL_XXX_CURSOR_ATTRIBUTES2, dove XXX è uguale a DYNAMIC, FORWARD_ONLY, KEYSET_DRIVEN o STATIC. Ognuno dei nuovi tipi indica le funzionalità del driver per un singolo tipo di cursore. Per altre informazioni su queste opzioni, vedere la descrizione della funzione SQLGetInfo .