Matrice di compatibilità

La tabella seguente descrive la compatibilità dei tipi di applicazione e driver definiti in precedenza in questa sezione.

Tipo di applicazione

e versione
ODBC a 32 bit

Driver 2.x
ODBC 3.x

driver
Driver ODBC 3.8 Driver conforme a ISO e Open Group
Applicazione a 16 bit, qualsiasi versione Compatibile Compatibile Compatibile Compatibile
Applicazione pura 2.x Compatibile Compatibile Compatibile Non compatibile[3]
Applicazione ricompilata pura 2.x Compatibile Compatibile[1] Compatibile[1] Non compatibile[3]
Applicazione Unicode pura 2.x Compatibile Compatibile[1] Compatibile[1] Non compatibile[3]
Applicazione pura conforme a Open Group e ISO Non compatibile Compatibile[2] Compatibile[2] Compatibile[2]
Applicazione pura 3.0 Non compatibile Compatibile Compatibile Non compatibile[4]
Applicazione pura 3.5 Non compatibile Compatibile Compatibile Non compatibile[4]
Applicazione pura 3.8 (o successiva) Non compatibile [5] Non compatibile [5] Compatibile Non compatibile [4]
Applicazione sostituita Compatibile Compatibile Compatibile Non compatibile[3]

[1] L'applicazione deve ricompilare usando intestazioni ODBC 3.5 (o versione successiva) con l'opzione UNICODE (se si tratta di un'applicazione Unicode) e deve impostare ODBCVER su 0x0250.

[2] L'applicazione deve essere compilata usando intestazioni ODBC 3.5 (o versione successiva) e collegarsi a Gestione driver ODBC. Deve anche impostare il flag di intestazione ODBC_STD.

[3] Questa configurazione potrebbe anche non funzionare perché in ODBC 2.x ci sono funzionalità non conformi agli standard, come i segnalibri.

[4] Questa configurazione potrebbe anche non funzionare perché in ODBC 3.x ci sono funzionalità non conformi agli standard, come i segnalibri.

[5] Questa configurazione potrebbe anche non funzionare perché in ODBC 3.8 ci sono funzionalità assenti nei driver ODBC 2.x o 3.x, ad esempio tipi di dati C di ODBC specifici del driver.

Compatibilità di Gestione driver

Un'applicazione ODBC 3.0 che deve funzionare con tutte le versioni di Gestione driver deve eseguire le operazioni seguenti all'avvio:

  • Allocare un handle di ambiente.

  • Impostare l'attributo di ambiente SQL_ATTR_ODBC_VERSION su SQL_OV_ODBC3_80. Se Gestione driver restituisce SQL_ERROR, Gestione driver è precedente alla versione 3.8. Reimpostare SQL_ATTR_ODBC_VERSION su SQL_OV_ODBC3 o SQL_OV_ODBC2, in base alle esigenze, in modo che corrisponda a Gestione driver.

  • Allocare un handle di connessione.

  • Creare una connessione.

  • Chiamare SQLGetInfo per SQL_DRIVER_ODBC_VER per determinare la versione del driver. Se il driver è un driver ODBC 3.8, è possibile usare tipi C specifici del driver. In caso contrario, non usare tipi di dati C specifici del driver.

Si noti che un'applicazione ODBC 3.x ricompilata può usare funzionalità ODBC 3.8 diverse dai tipi C specifici del driver senza specificare SQL_OV_ODBC3_80 per SQL_ATTR_ODBC_VERSION. È simile a un'applicazione ODBC 2.x ricompilata che usa le funzionalità ODBC 3.x.

Uso di SQLCancelHandle in un'applicazione compatibile con tutte le versioni di Gestione driver

Poiché la funzione SQLCancelHandle non è supportata nelle versioni di Gestione driver rilasciate prima di Windows 7, non è possibile caricare un'applicazione nelle versioni precedenti di Windows se chiama direttamente SQLCancelHandle. Per usare tutte le versioni di Gestione driver e usare SQLCancelHandle nelle nuove versioni di Windows, un'applicazione deve chiamare indirettamente SQLCancelHandle usando LoadLibrary e GetProcAddress.

Vedi anche

Novità di ODBC 3.8