OLE DB 提供者樣板架構
資料來源和工作階段
OLE DB 提供者架構包含數據源物件和一或多個會話。 數據源物件是每個提供者必須具現化的初始物件。 當取用者應用程式需要數據時,它會共同建立數據源對象來啟動提供者。 數據源物件會建立會話物件(使用 IDBCreateSession
介面),取用者會透過該物件連接到數據源物件。 ODBC 程式設計人員可以將資料來源物件視為相當於 HENV
,而工作階段物件相當於 HDBC
。
與 OLE DB 提供者精靈所建立的來源檔案一起,OLE DB 範本會實作數據源物件。 會話是對應至 OLE DB TSession
的物件。
強制和選擇性介面
OLE DB 提供者範本提供所有必要介面的預先封裝實作。 強制與選擇性介面是由 OLE DB 針對數種類型的物件所定義:
OLE DB 提供者範本不會實作數據列和儲存物件。
下表根據 OLE DB 2.6 SDK 檔,列出上述對象的強制和選擇性介面。
元件 | 介面 | 註解 |
---|---|---|
資料來源 (CDataSource) | [強制] IDBCreateSession [強制] IDBInitialize [強制] IDBProperties [強制] IPersist [選擇性] IConnectionPointContainer [選擇性] IDBAsynchStatus [選擇性] IDBDataSourceAdmin [選擇性] IDBInfo [選擇性] IPersistFile [選擇性] ISupportErrorInfo |
從取用者連線到提供者。 物件可用來指定連接的屬性,例如使用者標識碼、密碼和數據源名稱。 物件也可以用來管理數據源(建立、更新、刪除、數據表等等)。 |
工作階段 (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 提供者範本不會直接支援此物件(也就是您建立自己的物件)。 |
如需詳細資訊,請參閱下列主題: