记录和流

ADO 当前提供 Recordset 对象作为访问数据源(如关系数据库)中的信息的主要方法。 但是,某些提供程序支持 RecordStream 对象作为可操作提供程序数据的替代对象或补充对象。 有关 Record 行为的详细信息,请参阅提供程序文档。

记录

Record 对象实质上充当单行 Recordset。 但与 Recordset 相比,Record 功能是有限的,它们具有不同的属性和方法。Record 对象中的数据源可以是从提供程序返回一行数据的命令。 使用 Record 对象(而不是 Recordset 对象)从返回一行数据的查询中接收结果可省去实例化更复杂的 Recordset 对象的开销。

Record 对象可用于其他用途,特别是对于传统关系数据库以外的数据源的提供程序,例如用于 Internet 发布的 Microsoft OLE DB 提供程序。 许多必须处理的信息不是作为数据库中的表存在,而是作为电子邮件系统中的消息和新式文件系统中的文件存在。 Record 和 Stream 对象辅助访问存储在关系数据库以外的源中的信息。

Record 对象可以表示和管理数据,如文件系统中的目录和文件或电子邮件系统中的文件夹和邮件。 出于这些目的,Record 的源可以是打开的 Recordset 的当前行、绝对 URL 或与打开的 Connection 对象关联的相对 URL。

通常,Recordset 可用于表示层次结构(如文件夹或目录)中的容器或父级。 Record 可用于返回有关父容器中一个节点的特定信息,例如文件或文档。 Record 用于表示此类信息的主要原因是,这些数据源是异类的。 这意味着每条 Record 都可能具有不同的集和字段数。 包含数据库中的行的传统 Recordset 是同源的,这意味着每行都具有相同的字段数和字段类型。

有关使用 Record 对象处理提供程序(如 Internet Publishing Provider)中的此异类数据的详细信息,请参阅使用 ADO 进行 Internet 发布

Stream 对象提供读取、写入和管理字节流的方法。 此字节流可以是文本或二进制,并且大小仅受系统资源限制。 通常,ADO Stream 对象可用于以下目的:

  • 包含以 XML 格式保存的 Recordset 的数据。 打开新 Recordset 时,已保存的 Recordset 中的这些 XML 流可用作源。 有关详细信息,请参阅流和持久性

  • 包含要针对提供程序执行的 CommandStreams 作为 CommandText 的替代项。 例如,XML UpdateGrams 可用作针对 Microsoft OLE DB Provider for SQL Server 执行的命令的源。

  • 以 Recordset 以外的格式从提供程序接收结果,例如来自 Microsoft OLE DB Provider for SQL Server 的 XML 结果。 有关详细信息,请参阅将结果集检索到流中

  • 包含构成文件或消息的文本或字节,通常与 Microsoft OLE DB Provider for Internet Publishing 等提供程序一起使用。 有关 Stream 对象的此用法的详细信息,请参阅使用 ADO 进行 Internet 发布

可以在以下位置打开 Stream 对象:

  • 使用 URL 指定的简单文件。

  • 包含 Stream 对象的 Record 或 Recordset 的字段。

  • 表示目录或复合文件的 Record 或 Recordset 对象的默认流。

  • 包含简单文件的 URL 的资源字段。

  • 根本没有特定的源。 在这种情况下,将在内存中打开 Stream 对象。 可以将数据写入其中,然后将其保存在另一个 Stream 或文件中。

  • Recordset 中的 BLOB 字段。

本部分包含以下主题。