Architektur von OLE DB-Anbietervorlagen

Datenquellen und Sitzungen

Die OLE DB-Anbieterarchitektur enthält ein Datenquellenobjekt und eine oder mehrere Sitzungen. Das Datenquellenobjekt ist das anfängliche Objekt, das jeder Anbieter instanziieren muss. Wenn eine Consumeranwendung Daten benötigt, erstellt sie das Datenquellenobjekt gemeinsam, um den Anbieter zu starten. Das Datenquellenobjekt erstellt ein Sitzungsobjekt (mithilfe der IDBCreateSession Schnittstelle), über das der Consumer eine Verbindung mit dem Datenquellenobjekt herstellt. ODBC-Programmierer können sich das Datenquellenobjekt als gleichwertig mit dem HENV und dem Sitzungsobjekt vorstellen, das dem entspricht.HDBC

Anbieterarchitekturdiagramm.

Zusammen mit den Quelldateien, die vom OLE DB-Anbieter-Assistenten erstellt wurden, implementieren die OLE DB-Vorlagen ein Datenquellenobjekt. Eine Sitzung ist ein Objekt, das der OLE DB TSessionentspricht.

Obligatorische und optionale Schnittstellen

Die OLE DB-Anbietervorlagen bieten Ihnen vorab verpackte Implementierungen für alle erforderlichen Schnittstellen. Obligatorische und optionale Schnittstellen werden von OLE DB für mehrere Objekttypen definiert:

Die OLE DB-Anbietervorlagen implementieren die Zeilen- und Speicherobjekte nicht.

In der folgenden Tabelle sind obligatorische und optionale Schnittstellen für die oben aufgeführten Objekte gemäß der OLE DB 2.6 SDK-Dokumentation aufgeführt.

Komponente Schnittstelle Kommentar
Datenquelle (CDataSource) [verpflichtend] IDBCreateSession

[verpflichtend] IDBInitialize

[verpflichtend] IDBProperties

[verpflichtend] IPersist

[optional] IConnectionPointContainer

[optional] IDBAsynchStatus

[optional] IDBDataSourceAdmin

[optional] IDBInfo

[optional] IPersistFile

[optional] ISupportErrorInfo
Verbindung vom Consumer zum Anbieter. Das Objekt wird verwendet, um Eigenschaften für die Verbindung anzugeben, z. B. Benutzer-ID, Kennwort und Datenquellenname. Das Objekt kann auch zum Verwalten einer Datenquelle verwendet werden (Erstellen, Aktualisieren, Löschen, Tabellen usw.).
Sitzung (CSession) [verpflichtend] IGetDataSource

[verpflichtend] IOpenRowset

[verpflichtend] ISessionProperties

[optional] IAlterIndex

[optional] IAlterTable

[optional] IBindResource

[optional] ICreateRow

[optional] IDBCreateCommand

[optional] IDBSchemaRowset

[optional] IIndexDefinition

[optional] ISupportErrorInfo

[optional] ITableCreation

[optional] ITableDefinition

[optional] ITableDefinitionWithConstraints

[optional] ITransaction

[optional] ITransactionJoin

[optional] ITransactionLocal

[optional] ITransactionObject
Das Sitzungsobjekt ist eine einzelne Unterhaltung zwischen einem Verbraucher und einem Anbieter. Es ist vergleichbar mit dem ODBC HSTMT , in dem viele gleichzeitige Sitzungen aktiv sein können.

Das Sitzungsobjekt ist der primäre Link zum Abrufen der OLE DB-Funktionalität. Um zu einem Befehl, einer Transaktion oder einem Rowsetobjekt zu gelangen, durchlaufen Sie das Sitzungsobjekt.
Rowset (CRowset) [verpflichtend] IAccessor

[verpflichtend] IColumnsInfo

[verpflichtend] IConvertType

[verpflichtend] IRowset

[verpflichtend] IRowsetInfo

[optional] IChapteredRowset

[optional] IColumnsInfo2

[optional] IColumnsRowset

[optional] IConnectionPointContainer

[optional] IDBAsynchStatus

[optional] IGetRow

[optional] IRowsetChange

[optional] IRowsetChapterMember

[optional] IRowsetCurrentIndex

[optional] IRowsetFind

[optional] IRowsetIdentity

[optional] IRowsetIndex

[optional] IRowsetLocate

[optional] IRowsetRefresh

[optional] IRowsetScroll

[optional] IRowsetUpdate

[optional] IRowsetView

[optional] ISupportErrorInfo

[optional] IRowsetBookmark
Das Rowset-Objekt ist die Daten aus der Datenquelle. Das Objekt wird für die Bindungen dieser Daten und alle grundlegenden Vorgänge (Aktualisieren, Abrufen, Verschieben und andere) für die Daten verwendet. Sie haben immer ein Rowset-Objekt, um Daten beizubehalten und zu bearbeiten.
Befehl (CCommand) [verpflichtend] IAccessor

[verpflichtend] IColumnsInfo

[verpflichtend] ICommand

[verpflichtend] ICommandProperties

[verpflichtend] ICommandText

[verpflichtend] IConvertType

[optional] IColumnsRowset

[optional] ICommandPersist

[optional] ICommandPrepare

[optional] ICommandWithParameters

[optional] ISupportErrorInfo

[optional] ICommandStream
Das Befehlsobjekt verarbeitet Vorgänge für Daten wie Abfragen. Sie kann parametrisierte oder nicht parametrisierte Anweisungen verarbeiten.

Das Befehlsobjekt ist auch für die Verarbeitung von Bindungen für Parameter und Ausgabespalten verantwortlich. Eine Bindung ist eine Struktur, die Informationen darüber enthält, wie eine Spalte in einem Rowset abgerufen werden soll. Sie enthält Informationen wie Ordnungszahl, Datentyp, Länge und Status.
Transaktion (optional) [verpflichtend] IConnectionPointContainer

[verpflichtend] ITransaction

[optional] ISupportErrorInfo
Das Transaktionsobjekt definiert eine atome Arbeitseinheit für eine Datenquelle und bestimmt, wie diese Arbeitseinheiten miteinander zusammenhängen. Dieses Objekt wird von den OLE DB-Anbietervorlagen nicht direkt unterstützt (d. a. Sie erstellen Ein eigenes Objekt).

Weitere Informationen finden Sie in den folgenden Themen:

Siehe auch

OLE DB-Anbietervorlagen
OLE DB-Schnittstellen