行集

行集是一组包含数据列的行。行集是使所有 OLE DB 数据访问接口能够以表格形式公开结果集数据的中心对象。

使用者使用 IDBCreateSession::CreateSession 方法创建会话之后,该使用者可以对会话使用 IOpenRowsetIDBCreateCommand 接口创建行集。SQL Server Native Client OLE DB 访问接口对这两个接口都提供支持。下面描述这两种方法。

  • 通过调用 IOpenRowset::OpenRowset 方法可以创建行集。

    这等同于通过单个表创建行集。该方法打开并返回行集,其中包括单个基表中的所有行。OpenRowset 的一个参数是用于标识从其创建该行集的表的表 ID。

  • 通过调用 IDBCreateCommand::CreateCommand 方法可以创建命令对象。

    命令对象执行提供程序所支持的命令。通过使用 SQL Server Native Client OLE DB 访问接口,使用者可以指定任何 Transact-SQL 语句,例如 SELECT 语句或对存储过程的调用。使用命令对象创建行集的步骤如下:

    1. 使用者在会话中调用 IDBCreateCommand::CreateCommand 方法,以获得一个命令对象,并请求该命令对象的 ICommandText 接口。此 ICommandText 接口设置并检索实际的命令文本。使用者通过调用 ICommandText::SetCommandText 方法填充文本命令。

    2. 用户调用该命令的 ICommand::Execute 方法。执行命令时生成的行集对象包含该命令产生的结果集。

使用者可以使用 ICommandProperties 接口获得或设置 ICommand::Execute 接口执行命令后返回的行集的属性。最经常请求的属性是行集必须支持的接口。除了接口以外,使用者还可以请求能够修改行集或接口行为的属性。

使用者用 IRowset::Release 方法释放行集。释放行集时,将释放由该行集的使用者持有的任何行控点。释放行集时,不会释放取值函数。如果您有 IAccessor 接口,仍然必须释放它。