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.