ODBC: Direktes Aufrufen von ODBC-API-Funktionen
Die Datenbankklassen bieten eine einfachere Schnittstelle zu einer Datenquelle als ODBC. Daher kapseln die Klassen nicht alle ODBC-API. Für alle Funktionen, die außerhalb der Fähigkeiten der Klassen fallen, müssen Sie ODBC-API-Funktionen direkt aufrufen. Sie müssen beispielsweise die ODBC-Katalogfunktionen (::SQLColumns
, ::SQLProcedures
, ::SQLTables
und andere) direkt aufrufen.
Hinweis
Auf ODBC-Datenquellen können Sie über die MFC-ODBC-Klassen zugreifen, wie in diesem Thema beschrieben, oder über die MFC-Datenzugriffsobjekt-Klassen (DAO-Klassen).
Um eine ODBC-API-Funktion direkt aufzurufen, müssen Sie dieselben Schritte ausführen, die Sie ausführen würden, wenn Sie die Aufrufe ohne das Framework ausführen würden. Sie sind die folgenden Schritte:
Weisen Sie Speicher für alle Ergebnisse zu, die der Aufruf zurückgibt.
Übergeben Sie abhängig von der Parametersignatur der Funktion ein ODBC
HDBC
oderHSTMT
Handle. Verwenden Sie das AFXGetHENV-Makro , um das ODBC-Handle abzurufen.Membervariablen
CDatabase::m_hdbc
undCRecordset::m_hstmt
verfügbar, damit Sie diese nicht selbst zuordnen und initialisieren müssen.Rufen Sie möglicherweise zusätzliche ODBC-Funktionen auf, um den Standard Aufruf vorzubereiten oder zu verfolgen.
Verlagern Sie speicher, wenn Sie fertig sind.
Weitere Informationen zu diesen Schritten finden Sie in der ODBC-Programmierreferenz.
Zusätzlich zu diesen Schritten müssen Sie zusätzliche Schritte ausführen, um Die Rückgabewerte der Funktion zu überprüfen, sicherzustellen, dass Ihr Programm nicht auf den Abschluss eines asynchronen Aufrufs wartet usw. Sie können diese letzten Schritte vereinfachen, indem Sie die makros AFX_SQL_ASYNC und AFX_SQL_SYNC verwenden. Weitere Informationen finden Sie unter MFC-Makros und Globalen.