ODBC: chiamata diretta delle funzioni dell'API ODBC

Le classi di database forniscono un'interfaccia più semplice per un'origine dati rispetto a ODBC. Di conseguenza, le classi non incapsulano tutte le API ODBC. Per qualsiasi funzionalità che non rientra nelle capacità delle classi, è necessario chiamare direttamente le funzioni API ODBC. Ad esempio, è necessario chiamare direttamente le funzioni del catalogo ODBC (::SQLColumns, ::SQLProcedures, ::SQLTablese altre).

Nota

Le origini dati ODBC sono accessibili tramite le classi ODBC MFC, come descritto in questo argomento o tramite le classi DAO (Data Access Object) MFC.

Per chiamare direttamente una funzione API ODBC, è necessario eseguire gli stessi passaggi da eseguire se si effettuassero le chiamate senza il framework. I passaggi sono i seguenti:

  • Allocare spazio di archiviazione per i risultati restituiti dalla chiamata.

  • Passare un handle o HSTMT ODBCHDBC, a seconda della firma del parametro della funzione. Utilizzare la macro AFXGetHENV per recuperare l'handle ODBC.

    Le variabili CDatabase::m_hdbc membro e CRecordset::m_hstmt sono disponibili in modo che non sia necessario allocare e inizializzarli manualmente.

  • Ad esempio, chiamare funzioni ODBC aggiuntive per preparare o completare la chiamata principale.

  • Deallocare l'archiviazione al termine.

Per altre informazioni su questi passaggi, vedere le informazioni di riferimento per programmatori ODBC.

Oltre a questi passaggi, è necessario eseguire passaggi aggiuntivi per controllare i valori restituiti dalla funzione, assicurarsi che il programma non sia in attesa del completamento di una chiamata asincrona e così via. È possibile semplificare questi ultimi passaggi usando le macro AFX_SQL_ASYNC e AFX_SQL_SYNC. Per altre informazioni, vedere Macro e globali MFC.

Vedi anche

Nozioni fondamentali su ODBC