分散式查詢消耗的 OLE DB 物件
下表顯示了 Transact-SQL 分散式查詢所耗用的 OLE DB 物件與介面。OLE DB 提供者至少必須支援物件與介面的最小集合,才能用於任何 Transact-SQL 分散式查詢內。這些物件與介面在下表的必要資料行中將標為是。必要資料行中標為否的物件與介面,只在支援進階的分散式查詢功能時才需要用到。若提供者不支援某個介面,相關的 Transact-SQL 功能也不會受到支援。例如,若不支援 IRowsetLocate 與 IRowsetChange 介面,UPDATE 或 DELETE 陳述式就無法運作於遠端資料表內。
物件 |
介面 |
必要 |
描述 |
---|---|---|---|
Data Source |
IDBInitialize |
是 |
初始化與設定資料和安全性內容。 |
|
IDBCreateSession |
是 |
建立 DB Session 物件。 |
|
IDBProperties |
是 |
取得提供者功能的相關資訊,並設定初始化屬性。 |
|
IDBInfo |
否 |
取得提供者所支援 SQL 語法的相關資訊。 |
DB Session |
IDBSchemaRowset |
否 |
取得資料表和資料行的中繼資料。所需的資料列集為 TABLES 與 COLUMNS。若可使用,其他用到的資料列集為 TABLES_INFO、CATALOGS、INDEXES、STATISTICS、TABLE_STATISTICS、VIEWS、PRIMARY_KEYS、TABLE_PRIVILEGES 與 COLUMN_PRIVILEGES。 |
|
IOpenRowset |
是 |
在資料表、索引或長條圖上開啟資料列集。 |
|
IGetDataSource |
是 |
回到 DB Session 物件的資料來源物件。 |
|
IDBCreateCommand |
否 |
建立 Command 物件 (查詢)。 |
|
ITransactionLocal |
否 |
在提供者上啟動交易。 |
|
ITransactionJoin |
否 |
用於分散式交易支援。若不支援此介面,您就不能在使用者交易中更新遠端提供者。 |
Rowset (在資料表上) |
IRowset |
是 |
掃描資料列。 |
|
IAccessor |
是 |
繫結至資料列集的資料行。 |
|
IColumnsInfo |
是 |
取得資料列集的資料行相關資訊。 |
|
IRowsetInfo |
是 |
取得資料列集屬性的相關資訊。 |
|
IRowsetLocate |
否 |
對於 UPDATE 或 DELETE 作業與索引形式的尋查是必要的。 |
|
IRowsetChange |
否 |
對於資料表上的 INSERT、UPDATE 或 DELETE 作業是必要的。針對基底資料表的資料列集應該支援此介面,以便支援 INSERT、UPDATE 或 DELETE 陳述式。 |
|
IConvertType |
是 |
確認資料列集是否支援其資料行的特定資料類型轉換。 |
Rowset (在索引上) |
IRowset |
是 |
掃描資料列。 |
|
IAccessor |
是 |
繫結至資料列集的資料行。 |
|
IColumnsInfo |
是 |
取得資料列集的資料行相關資訊。 |
|
IRowsetInfo |
是 |
取得資料列集屬性的相關資訊。 |
|
IRowsetIndex |
是 |
對於索引上的資料列集是必要的;可用於索引功能 (設定範圍、搜尋)。 |
|
IConvertType |
是 |
確認資料列集是否支援其資料行的特定資料類型轉換。 |
Command (選擇性) |
ICommand |
是 |
用來執行查詢。 |
|
ICommandText |
是 |
用於定義查詢文字。 |
|
ICommandProperties |
是 |
指定命令所傳回的資料列集之必要屬性。 |
|
ICommandWithParameters |
否 |
用於參數化查詢執行。 |
|
ICommandPrepare |
否 |
用於準備命令,以取得中繼資料。 |
Error (選擇性) |
IErrorRecords |
是 |
取得指到錯誤記錄之 IErrorInfo 介面的指標。 |
|
IErrorInfo |
是 |
取得錯誤記錄的文字描述。 |
Any object (選擇性) |
ISupportErrorInfo |
否 |
決定指定的介面是否支援錯誤物件。 |