Freigeben über


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, ::SQLTablesund 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 oder HSTMT Handle. Verwenden Sie das AFXGetHENV-Makro , um das ODBC-Handle abzurufen.

    Membervariablen CDatabase::m_hdbc und CRecordset::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 Hauptaufruf 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.

Siehe auch

Grundlagen zu ODBC