_Streams 表

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

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

名字

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

数据

未格式化的二进制数据。

备注

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

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

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

若要删除数据流,请提取记录,在更新记录之前将"数据"列设置为 null。 另一个方法是从表中删除记录,使用 MsiViewModify或纯 SQL将其删除。 如果从表中删除流,则不应将流提取到记录中。

若要重命名 OLE 数据流,请更新记录的"Name"列。

如果使用 ALTER TABLE 对此表SQL (保留

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