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
, ::SQLTables
e 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 eCRecordset::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.