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 vorausgesetzt, dass Sie OLE DB-Consumerunterstützung einem vorhandenen ATL-Projekt hinzufügen. Wenn Sie einer MFC-Anwendung OLE DB-Consumerunterstützung hinzufügen möchten, sollten Sie den MFS-Anwendungsassistenten ausführen, der für alle erforderliche Unterstützung sorgt und MFC-Routinen aufruft, die zum Ausführen der Anwendung erforderlich sind.
So fügen Sie OLE DB-Consumerunterstützung ohne Verwendung des ATL-OLE DB-Consumer-Assistenten hinzu:
Fügen Sie in der Datei "pch.h " die folgenden
#includeAnweisungen an:#include <atlbase.h> #include <atldbcli.h> #include <atldbsch.h> // if you are using schema templates
Programmgesteuert führt ein Consumer in der Regel die folgende Sequenz von Vorgängen aus:
Erstellen Sie eine Benutzerdatensatzklasse, die Spalten an lokale Variablen bindet. In diesem Beispiel ist
CMyTableNameAccessordie Benutzerdatensatzklasse (siehe Benutzerdatensätze). Diese Klasse enthält die Spalten- und Parameterzuordnung. Deklarieren Sie in der Benutzerdatensatzklasse für jedes Feld, das Sie in der Spaltenzuordnung angeben, einen Datenmember; deklarieren Sie auch für jeden dieser Datenmember einen Statusdatenmember und einen Längendatenmember. Weitere Informationen finden Sie unter Feldstatus-Datenmember in vom Assistenten generierten Accessoren.Hinweis
Wenn Sie einen eigenen Consumer erstellen, müssen die Datenvariablen in der Reihenfolge vor den Status- und Längenvariablen liegen.
Instanziieren Sie eine Datenquelle und eine Sitzung. Entscheiden Sie, welcher Accessor- und Rowsettyp verwendet werden soll, und instanziieren Sie dann ein Rowset mit CCommand oder CTable:
CDataSource ds; CSession ss; class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor>>Rufen Sie
CoInitializezur COM-Initialisierung auf. Dies wird im Hauptcode aufgerufen. Zum Beispiel:HRESULT hr = CoInitialize(NULL);Rufen Sie CDataSource::Open oder eine seine Varianten auf.
Öffnen Sie eine Verbindung mit der Datenquelle, öffnen Sie die Sitzung, und öffnen und initialisieren Sie das Rowset (und führen Sie auch ggf. einen Befehl aus):
hr = ds.Open(); hr = ss.Open(ds); hr = rs.Open(); // (Open also executes the command)Legen Sie optional Rowseteigenschaften mit
CDBPropSet::AddPropertyfest, und übergeben Sie sie als Parameter anrs.Open. Ein Beispiel hierfür finden Sie unterGetRowsetPropertiesin Vom Consumer-Assistenten generierte Methoden.Sie können das Rowset jetzt zum Abrufen/Bearbeiten der Daten verwenden.
Wenn Ihre Anwendung abgeschlossen ist, schließen Sie Verbindung, Sitzung und Rowset:
rs.Close(); ss.Close(); ds.Close();Wenn Sie einen Befehl verwenden, sollten Sie
ReleaseCommandnachCloseaufrufen. Das Codebeispiel in CCommand::Close zeigt Ihnen, wie SieCloseundReleaseCommandaufrufen.Rufen Sie
CoUnInitializeauf, um die COM-Initialisierung aufzuheben. Dies wird im Hauptcode aufgerufen.CoUninitialize();