Handle di connessione

Una connessione è costituita da un driver e da un'origine dati. Un handle di connessione identifica ogni connessione. L'handle di connessione definisce non solo il driver da usare, ma l'origine dati da usare con tale driver. All'interno di un segmento di codice che implementa ODBC (Gestione driver o un driver), l'handle di connessione identifica una struttura che contiene informazioni di connessione, ad esempio:

  • Lo stato della connessione

  • La diagnostica a livello di connessione corrente

  • L’handle di istruzioni e i descrittori attualmente allocati nella connessione

  • Le impostazioni attuali di ogni attributo di connessione

ODBC non impedisce più connessioni simultanee, se il driver le supporta. Pertanto, in un particolare ambiente ODBC, più handle di connessione possono puntare a un'ampia gamma di driver e origini dati, allo stesso driver e a un'ampia gamma di origini dati o anche a più connessioni allo stesso driver e origine dati. Alcuni driver limitano il numero di connessioni attive supportate; l'opzione SQL_MAX_DRIVER_CONNECTIONS in SQLGetInfo specifica il numero di connessioni attive supportate da un determinato driver.

Gli handle di connessione vengono usati principalmente per la connessione all'origine dati (SQLConnect, SQLDriverConnect o SQLBrowseConnect), la disconnessione dall'origine dati (SQLDisconnect), il recupero di informazioni sul driver e sull'origine dati (SQLGetInfo), il recupero della diagnostica (SQLGetDiagField e SQLGetDiagRec) e l’esecuzione di transazioni (SQLEndTran). Vengono usati anche quando si impostano e si ottengono attributi di connessione (SQLSetConnectAttr e SQLGetConnectAttr) e quando si ottiene il formato nativo di un'istruzione SQL (SQLNativeSql).

Gli handle di connessione vengono allocati con SQLAllocHandle e liberati con SQLFreeHandle.