ODBC: chiamata diretta delle funzioni dell'API ODBC

Le classi di database forniscono alle origini dati un'interfaccia più semplice di quella fornita da ODBC.Di conseguenza, le classi non includono tutte le API ODBC.Per le funzionalità non supportate dalle classi, è necessario chiamare direttamente le funzioni dell'API ODBC.È necessario, ad esempio, chiamare direttamente le funzioni del catalogo ODBC, tra cui ::SQLColumns, ::SQLProcedures e ::SQLTables.

[!NOTA]

È possibile accedere alle origini dati ODBC tramite le classi ODBC MFC, come descritto nel presente argomento, oppure tramite le classi DAO (Data Access Object) MFC.

Per chiamare direttamente una funzione API ODBC, è necessario effettuare le stesse operazioni che si eseguirebbero per le chiamate senza il framework.Le operazioni sono le seguenti:

  • Allocare la memoria per archiviare tutti i risultati restituiti dalla chiamata.

  • Passare un handle ODBC HDBC o HSTMT, in base alla firma della funzione in base al parametro.Utilizzare la macro AFXGetHENV per recuperare l'handle ODBC.

    Poiché le variabili membro CDatabase::m_hdbc e CRecordset::m_hstmt sono disponibili, non è necessario allocarle e inizializzarle manualmente.

  • È probabilmente necessario chiamare funzioni ODBC aggiuntive prima o dopo la chiamata principale.

  • Al termine, deallocare la memoria per l'archiviazione.

Per ulteriori informazioni su queste operazioni, vedere l'SDK Open Database Connectivity (ODBC) nella documentazione di MSDN.

È necessario inoltre effettuare ulteriori operazioni per verificare i valori restituiti dalla funzione, assicurarsi che il programma creato non sia in attesa del completamento di una chiamata asincrona e così via.È possibile semplificare queste ultime operazioni utilizzando le macro AFX_SQL_ASYNC e AFX_SQL_SYNC.Per ulteriori informazioni, vedere Macro e funzioni globali in Riferimenti alla libreria MFC.

Vedere anche

Concetti

Nozioni fondamentali su ODBC