分布式查询使用的 OLE DB 对象

下表显示了 Transact-SQL 分布式查询使用的 OLE DB 对象和接口。OLE DB 访问接口必须至少支持一些必需的对象和接口,才可用于任何 Transact-SQL 分布式查询。这些对象和接口在表的“必需”列中都标记为“是”。只有在支持高级分布式查询功能时,才需要使用“必需”列中标记为“否”的对象和接口。如果该访问接口不支持接口,则也不会支持相关的 Transact-SQL 功能。例如,如果不支持 IRowsetLocateIRowsetChange 接口,则不能在远程中表使用 UPDATE 和 DELETE 语句。

对象

接口

必需

说明

数据源

IDBInitialize

初始化并设置数据和安全上下文。

 

IDBCreateSession

创建 DB 会话对象。

 

IDBProperties

获取有关访问接口功能的信息并设置初始化属性。

 

IDBInfo

获取有关访问接口支持的 SQL 语法的信息。

DB 会话

IDBSchemaRowset

获取表和列元数据。所需的行集是 TABLES 和 COLUMNS。使用的其他行集(如果有)是 TABLES_INFO、CATALOGS、INDEXES、STATISTICS、TABLE_STATISTICS、VIEWS、PRIMARY_KEYS、TABLE_PRIVILEGES 和 COLUMN_PRIVILEGES。

 

IopenRowset

打开表、索引或直方图上的行集。

 

IgetDataSource

从 DB 会话对象返回到数据源对象。

 

IDBCreateCommand

创建命令对象(查询)。

 

ITransactionLocal

在访问接口上启动事务。

 

ItransactionJoin

用于分布式事务支持。如果不支持此接口,则不允许在用户事务中更新远程访问接口。

行集(在表上)

IRowset

扫描行。

 

IAccessor

绑定到行集中的列。

 

IColumnsInfo

获取有关行集中的列的信息。

 

IRowsetInfo

获取有关行集属性的信息。

 

IrowsetLocate

为 UPDATE 或 DELETE 操作和基于索引的查找所必需。

 

IrowsetChange

为在表中执行的 INSERT、UPDATE 或 DELETE 操作所必需。基表的行集应该支持此接口,以支持 INSERT、UPDATE 或 DELETE 语句。

 

IConvertType

验证行集是否支持对其列进行特定数据类型转换。

行集(在索引上)

IRowset

扫描行。

 

IAccessor

绑定到行集中的列。

 

IColumnsInfo

获取有关行集中的列的信息。

 

IRowsetInfo

获取有关行集属性的信息。

 

IrowsetIndex

为索引上的行集所必需;用于索引功能(设置范围、查找)。

 

IConvertType

验证行集是否支持对其列进行特定数据类型转换。

命令(可选)

ICommand

用于执行查询。

 

ICommandText

用于定义查询文本。

 

ICommandProperties

指定命令返回的行集的必需属性。

 

ICommandWithParameters

用于参数化查询执行。

 

ICommandPrepare

用于准备命令以获取元数据。

错误(可选)

IErrorRecords

获取指向错误记录的 IErrorInfo 接口的指针。

 

IErrorInfo

获取错误记录的文本说明。

任何对象(可选)

IsupportErrorInfo

确定指定接口是否支持错误对象。