_Streams表

_Streams表列出了嵌入的 OLE 数据流。 这是一个临时表,仅在SQL语句引用时创建。

类型 密钥 Nullable
名称 文本 Y N
数据 二进制 N Y

 

名字

标识流的唯一键。 名称的最大长度为 62 个字符。

数据

未格式化的二进制数据。

备注

例如,若要将 OLE 数据流 (, 二进制 数据类型的对象) 从文件复制到数据库中,请在_Streams表中创建记录,并将数据流的名称输入到此记录的名称列中,并使用 MsiRecordSetStream 将数据从文件复制到数据列中。 使用 MsiViewModify 将新记录插入表中。

若要读取嵌入在数据库中的二进制数据流,请使用SQL查询查找和提取包含二进制数据的记录。 使用 MsiRecordReadStream 将二进制数据读入缓冲区。

若要将二进制数据流从一个数据库移到另一个数据库,请先将数据导出到文件。 使用SQL查询查找文件中的数据流,并使用 MsiRecordSetStream 将数据从文件复制到第二个数据库的 _Streams 表的数据列中。 这可确保每个数据库都有自己的二进制数据副本。 只需从第一个数据库提取包含数据的记录并将其插入到第二个数据库中,就不能将二进制数据从一个数据库移到另一个数据库。

若要删除数据流,请提取记录,并将“数据”列设置为 null,然后再更新记录。 另一种方法是从表中删除记录,使用 MsiViewModify 或纯SQL查询将其删除。 如果从表中删除流,则不应将流提取到记录中。

若要重命名 OLE 数据流,请更新记录的“名称”列。

如果使用 SQL (ALTER TABLE 将此表放置保留

HOLD) 或使用 HOLD 添加列,必须使用 FREE 释放表。 在发布或提交表之前,不会写入流。