共用方式為


OLE DB 提供者樣板架構

更新:2007 年 11 月

資料來源和工作階段

OLE DB 提供者架構包含一個資料來源物件和一或多個工作階段 (Session)。資料來源物件為每個提供者都必須執行個體化的初始物件。當消費者應用程式需要資料時,它會同時建立資料來源物件來啟動提供者。該資料來源物件會建立一個讓消費者用來連接至資料來源物件的工作階段物件 (使用 IDBCreateSession 介面)。ODBC 程式設計人員可將資料來源物件視同 HENV,而將工作階段物件則視為 HDBC

提供者架構圖形

OLE DB 樣板可搭配 OLE DB 提供者精靈所建立的原始程式檔 (Source File),實作一個資料來源物件。工作階段是對應至 OLE DB TSession 的物件。

強制項和選擇項介面

OLE DB 提供者樣板提供您所有必要介面的預先封裝實作。OLE DB 會替多個物件類型定義了強制項和選擇項介面:

請注意,OLE DB 提供者樣板並不會實作資料列和儲存物件 (Storage Object)。

下表根據 OLE DB 2.6 SDK 文件,列出上列物件的強制項和選擇項介面。

元件

介面

註解

資料來源 (CDataSource)

[強制] IDBCreateSession

[強制] IDBInitialize

[強制] IDBProperties

[強制] IPersist

[選擇項] IConnectionPointContainer

[選擇項] IDBAsynchStatus

[選擇項] IDBDataSourceAdmin

[選擇項] IDBInfo

[選擇項] IPersistFile

[選擇項] ISupportErrorInfo

自消費者連接至提供者。用來指定連接屬性的物件,例如,使用者 ID、密碼和資料來源名稱 (Data Source Name)。物件也可用來管理資料來源 (建立、更新、刪除、表格等等)。

工作階段 (CSession)

[強制] IGetDataSource

[強制] IOpenRowset

[強制] ISessionProperties

[選擇項] IAlterIndex

[選擇項] IAlterTable

[選擇項] IBindResource

[選擇項] ICreateRow

[選擇項] IDBCreateCommand

[選擇項] IDBSchemaRowset

[選擇項] IIndexDefinition

[選擇項] ISupportErrorInfo

[選擇項] ITableCreation

[選擇項] ITableDefinition

[選擇項] ITableDefinitionWithConstraints

[選擇項] ITransaction

[選擇項] ITransactionJoin

[選擇項] ITransactionLocal

[選擇項] ITransactionObject

工作階段物件代表消費者和提供者之間的單一轉換。有點類似 ODBC HSTMT,因為可以有很多同時作用的工作階段。

工作階段物件是取得 OLE DB 功能的主要連結。若要取得命令、交易或資料列集物件,您可瀏覽一遍工作階段物件。

資料列集 (CRowset)

[強制] IAccessor

[強制] IColumnsInfo

[強制] IConvertType

[強制] IRowset

[強制] IRowsetInfo

[選擇項] IChapteredRowset

[選擇項] IColumnsInfo2

[選擇項] IColumnsRowset

[選擇項] IConnectionPointContainer

[選擇項] IDBAsynchStatus

[選擇項] IGetRow

[選擇項] IRowsetChange

[選擇項] IRowsetChapterMember

[選擇項] IRowsetCurrentIndex

[選擇項] IRowsetFind

[選擇項] IRowsetIdentity

[選擇項] IRowsetIndex

[選擇項] IRowsetLocate

[選擇項] IRowsetRefresh

[選擇項] IRowsetScroll

[選擇項] IRowsetUpdate

[選擇項] IRowsetView

[選擇項] ISupportErrorInfo

[選擇項] IRowsetBookmark

資料列集物件代表來自資料來源的資料。此物件負責該資料的繫結,和任何的基本資料操作 (更新、擷取、移動和其他作業)。您永遠會有包含和管理資料的資料列集物件。

命令 (CCommand)

[強制] IAccessor

[強制] IColumnsInfo

[強制] ICommand

[強制] ICommandProperties

[強制] ICommandText

[強制] IConvertType

[選擇項] IColumnsRowset

[選擇項] ICommandPersist

[選擇項] ICommandPrepare

[選擇項] ICommandWithParameters

[選擇項] ISupportErrorInfo

[選擇項] ICommandStream

處理資料作業的命令物件,例如查詢。它可以處理參數型或非參數型陳述式。

命令物件也負責處理參數和輸出資料行的繫結。繫結是一個包含資料列集資料行擷取方式之相關資訊的結構。它包含了序數、資料型別、長度和狀態的資訊。

交易 (選擇項)

[強制] IConnectionPointContainer

[強制] ITransaction

[選擇項] ISupportErrorInfo

交易物件定義資料來源內的原子單位,並決定這些工作單位彼此間的關係。OLE DB 提供者樣板並未直接支援這個物件 (也就是您建立自己的物件)。

如需詳細資訊,請參閱下列主題:

請參閱

概念

OLE DB 提供者樣板 (C++)

參考

OLE DB Interfaces