Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im folgenden Beispiel wird davon ausgegangen, dass Sie einem bestehenden ATL-Projekt OLE DB-Consumerunterstützung hinzufügen.Wenn Sie OLE DB-Consumerunterstützung zu einer MFC-Anwendung hinzufügen möchten, sollten Sie den MFC-Anwendungs-Assistenten ausführen. Er erstellt die benötigte Unterstützung und ruft die zur Ausführung der Anwendung notwendigen MFC-Routinen auf.
So fügen Sie OLE DB-Consumerunterstützung ohne Verwendung des ATL-OLE DB-Consumer-Assistenten hinzu:
Fügen Sie in der Datei stdafx.h die folgenden #include-Anweisungen an:
#include <atlbase.h> #include <atldbcli.h> #include <atldbsch.h> // if you are using schema templates
Programmtechnisch führt ein Consumer in der Regel die folgende Operationsabfolge aus:
Erstellen einer Benutzerdatensatz-Klasse, die Spalten an lokale Variablen bindet.In diesem Beispiel ist CMyTableNameAccessor die Benutzerdatensatzklasse (siehe Benutzerdatensätze).Diese Klasse enthält die Spaltenzuordnung und die Parameterzuordnung.Deklarieren Sie in der Benutzerdatensatz-Klasse einen Datenmember für jedes in der Spaltenzuordnung festgelegte Feld. Deklarieren Sie außerdem für jeden dieser Datenmember einen Statusdatenmember und einen Längendatenmember.Weitere Informationen finden Sie unter Feldstatus-Datenmember in vom Assistenten generierten Accessoren.
HinweisWenn Sie einen eigenen Consumer schreiben, müssen die Datenvariablen vor den Status- und Längenvariablen stehen.
Instanziieren einer Datenquelle und einer Sitzung.Entscheiden Sie, welcher Accessor- und Rowsettyp verwendet wird, und instanziieren Sie dann ein Rowset mit CCommand oder CTable:
CDataSource ds; CSession ss; class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor> >Aufrufen von CoInitialize zum Initialisieren von COM.Dies erfolgt üblicherweise im Hauptcode.Beispiele:
HRESULT hr = CoInitialize(NULL);Aufrufen von CDataSource::Open oder einer Variation davon.
Öffnen einer Verbindung zur Datenquelle, Öffnen der Sitzung und Öffnen und Initalisieren des Rowsets (bei einem Befehl auch Ausführen dieses Befehls):
hr = ds.Open(); hr = ss.Open(ds); hr = rs.Open(); // (Open also executes the command)Optional Festlegen von Rowseteigenschaften mit CDBPropSet::AddProperty und Übergeben dieser Eigenschaften als Parameter an rs.Open.Ein Beispiel zur Vorgehensweise finden Sie unter GetRowsetProperties im Thema Vom Consumer-Assistenten generierte Methoden.
Sie können nun das Rowset zum Abrufen/Bearbeiten der Daten verwenden.
Schließen Sie nach Fertigstellung der Anwendung die Verbindung, die Sitzung und das Rowset:
rs.Close(); ss.Close(); ds.Close();Wenn Sie einen Befehl verwenden, empfiehlt es sich, ReleaseCommand nach Close aufzurufen.Im Codebeispiel unter CCommand::Close wird gezeigt, wie Close und ReleaseCommand aufgerufen werden.
Aufrufen von CoUnInitialize, um COM nicht zu initialisieren.Dies erfolgt üblicherweise im Hauptcode.
CoUninitialize();