Architektura szablonu dostawcy OLE DB

Źródła i sesje danych

Architektura dostawcy OLE DB zawiera obiekt źródła danych i co najmniej jedną sesję. Obiekt źródła danych jest obiektem początkowym, który każdy dostawca musi utworzyć wystąpienie. Gdy aplikacja odbiorcy potrzebuje danych, tworzy obiekt źródła danych, aby uruchomić dostawcę. Obiekt źródła danych tworzy obiekt sesji (przy użyciu interfejsu IDBCreateSession ), za pomocą którego odbiorca łączy się z obiektem źródła danych. Programiści ODBC mogą traktować obiekt źródła danych jako odpowiednik obiektu i obiektu sesji jako odpowiednik HENV obiektu HDBC.

Provider architecture diagram.

Wraz z plikami źródłowymi utworzonymi przez Kreatora dostawcy OLE DB szablony OLE DB implementują obiekt źródła danych. Sesja to obiekt, który odpowiada bazie danych OLE DB TSession.

Obowiązkowe i opcjonalne interfejsy

Szablony dostawców OLE DB zapewniają wstępnie spakowane implementacje dla wszystkich wymaganych interfejsów. Obowiązkowe i opcjonalne interfejsy są definiowane przez bazę danych OLE DB dla kilku typów obiektów:

Szablony dostawców OLE DB nie implementują obiektów wiersza i magazynu.

W poniższej tabeli wymieniono obowiązkowe i opcjonalne interfejsy dla obiektów wymienionych powyżej, zgodnie z dokumentacją zestawu SDK OLE DB 2.6.

Składnik Interfejs Komentarz
Źródło danych (CDataSource) [obowiązkowe] IDBCreateSession

[obowiązkowe] IDBInitialize

[obowiązkowe] IDBProperties

[obowiązkowe] IPersist

[opcjonalnie] IConnectionPointContainer

[opcjonalnie] IDBAsynchStatus

[opcjonalnie] IDBDataSourceAdmin

[opcjonalnie] IDBInfo

[opcjonalnie] IPersistFile

[opcjonalnie] ISupportErrorInfo
Połączenie od konsumenta do dostawcy. Obiekt służy do określania właściwości połączenia, takich jak identyfikator użytkownika, hasło i nazwa źródła danych. Obiekt może również służyć do administrowania źródłem danych (tworzenie, aktualizowanie, usuwanie, tabele itd.).
Sesja (CSession) [obowiązkowe] IGetDataSource

[obowiązkowe] IOpenRowset

[obowiązkowe] ISessionProperties

[opcjonalnie] IAlterIndex

[opcjonalnie] IAlterTable

[opcjonalnie] IBindResource

[opcjonalnie] ICreateRow

[opcjonalnie] IDBCreateCommand

[opcjonalnie] IDBSchemaRowset

[opcjonalnie] IIndexDefinition

[opcjonalnie] ISupportErrorInfo

[opcjonalnie] ITableCreation

[opcjonalnie] ITableDefinition

[opcjonalnie] ITableDefinitionWithConstraints

[opcjonalnie] ITransaction

[opcjonalnie] ITransactionJoin

[opcjonalnie] ITransactionLocal

[opcjonalnie] ITransactionObject
Obiekt sesji jest jedną konwersacją między użytkownikiem a dostawcą. Jest on podobny do odBC HSTMT , ponieważ może istnieć wiele równoczesnych sesji aktywnych.

Obiekt sesji jest podstawowym linkiem umożliwiającym uzyskanie funkcji OLE DB. Aby uzyskać dostęp do obiektu polecenia, transakcji lub zestawu wierszy, przejdź przez obiekt sesji.
Zestaw wierszy (CRowset) [obowiązkowe] IAccessor

[obowiązkowe] IColumnsInfo

[obowiązkowe] IConvertType

[obowiązkowe] IRowset

[obowiązkowe] IRowsetInfo

[opcjonalnie] IChapteredRowset

[opcjonalnie] IColumnsInfo2

[opcjonalnie] IColumnsRowset

[opcjonalnie] IConnectionPointContainer

[opcjonalnie] IDBAsynchStatus

[opcjonalnie] IGetRow

[opcjonalnie] IRowsetChange

[opcjonalnie] IRowsetChapterMember

[opcjonalnie] IRowsetCurrentIndex

[opcjonalnie] IRowsetFind

[opcjonalnie] IRowsetIdentity

[opcjonalnie] IRowsetIndex

[opcjonalnie] IRowsetLocate

[opcjonalnie] IRowsetRefresh

[opcjonalnie] IRowsetScroll

[opcjonalnie] IRowsetUpdate

[opcjonalnie] IRowsetView

[opcjonalnie] ISupportErrorInfo

[opcjonalnie] IRowsetBookmark
Obiekt zestawu wierszy to dane ze źródła danych. Obiekt jest używany do powiązań tych danych i wszelkich podstawowych operacji (aktualizacji, pobierania, przenoszenia i innych) danych. Zawsze masz obiekt zestawu wierszy, aby przechowywać dane i manipulować nimi.
Polecenie (CCommand) [obowiązkowe] IAccessor

[obowiązkowe] IColumnsInfo

[obowiązkowe] ICommand

[obowiązkowe] ICommandProperties

[obowiązkowe] ICommandText

[obowiązkowe] IConvertType

[opcjonalnie] IColumnsRowset

[opcjonalnie] ICommandPersist

[opcjonalnie] ICommandPrepare

[opcjonalnie] ICommandWithParameters

[opcjonalnie] ISupportErrorInfo

[opcjonalnie] ICommandStream
Obiekt polecenia obsługuje operacje na danych, takich jak zapytania. Może obsługiwać sparametryzowane lub nieparametryzowane instrukcje.

Obiekt polecenia jest również odpowiedzialny za obsługę powiązań dla parametrów i kolumn wyjściowych. Powiązanie to struktura zawierająca informacje o sposobie pobierania kolumny w zestawie wierszy. Zawiera informacje, takie jak porządkowe, typ danych, długość i stan.
Transakcja (opcjonalnie) [obowiązkowe] IConnectionPointContainer

[obowiązkowe] ITransaction

[opcjonalnie] ISupportErrorInfo
Obiekt transakcji definiuje niepodzielne jednostki pracy w źródle danych i określa, jak te jednostki pracy odnoszą się do siebie nawzajem. Ten obiekt nie jest bezpośrednio obsługiwany przez szablony dostawcy OLE DB (czyli tworzenie własnego obiektu).

Aby uzyskać więcej informacji, zobacz następujące tematy:

Zobacz też

Szablony dostawców OLE DB
Interfejsy OLE DB