Allocazione di un handle di connessione ODBC

Prima che l'applicazione possa connettersi a un'origine dati o a un driver, è necessario che allochi un handle di connessione come segue:

  1. L'applicazione dichiara una variabile di tipo SQLHDBC. Chiama quindi SQLAllocHandle e passa l'indirizzo di questa variabile, l'handle dell'ambiente in cui allocare la connessione e l'opzione SQL_HANDLE_DBC. Ad esempio:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. Gestione driver alloca una struttura in cui archiviare le informazioni sull'istruzione e restituisce l'handle di connessione nella variabile.

Gestione driver non chiama SQLAllocHandle nel driver in questo momento perché non conosce il driver da chiamare. Ritarda la chiamata a SQLAllocHandle nel driver finché l'applicazione non chiama una funzione per connettersi a un'origine dati. Per maggiori informazioni, vedere Ruolo di Gestione driver nel processo di connessione più avanti in questa sezione.

È importante notare che l'allocazione di un handle di connessione non equivale al caricamento di un driver. Il driver non viene caricato finché non viene chiamata una funzione di connessione. Di conseguenza, dopo aver allocato un handle di connessione e prima di connettersi al driver o all'origine dati, le uniche funzioni che l'applicazione può chiamare con l'handle di connessione sono SQLSetConnectAttr, SQLGetConnectAttr o SQLGetInfo con l'opzione SQL_ODBC_VER. La chiamata ad altre funzioni con l'handle di connessione, ad esempio SQLEndTran, restituisce SQLSTATE 08003 (Connessione non aperta). Per informazioni dettagliate, vedere Appendice B: Tabelle di transizione di stato ODBC.

Per maggiori informazioni sugli handle di connessione, vedere Handle di connessione.