Поделиться через


Таблица _Streams

В таблице _Streams перечислены внедренные потоки данных OLE. Это временная таблица, созданная только при указании ссылки с помощью инструкции SQL.

Столбец Type Ключ Допускает значения NULL
Имя Text Да N
Данные Двоичный N Да

 

Столбцы

Имя

Уникальный ключ, идентифицирующий поток. Максимальная длина имени — 62 символа.

Данных

Неформатированные двоичные данные.

Комментарии

Чтобы скопировать поток данных OLE (например, объект типа двоичных данных) из файла в базу данных, создайте запись в таблице _Streams и введите имя потока данных в столбец Имя этой записи и скопируйте данные из файла в столбец Данные с помощью MsiRecordSetStream. Используйте MsiViewModify для вставки новой записи в таблицу.

Чтобы прочитать поток двоичных данных, внедренный в базу данных, используйте SQL-запрос для поиска и получения записи, содержащей двоичные данные. Используйте MsiRecordReadStream для чтения двоичных данных в буфер.

Чтобы переместить поток двоичных данных из одной базы данных в другую, сначала экспортируйте данные в файл. Используйте SQL-запрос для поиска потока данных в файле и msiRecordSetStream для копирования данных из файла в столбец Данных _Streams таблицы второй базы данных. Это гарантирует, что каждая база данных имеет собственную копию двоичных данных. Невозможно переместить двоичные данные из одной базы данных в другую, просто извлекая запись с данными из первой базы данных и вставляя ее во вторую базу данных.

Чтобы удалить поток данных, получите запись и задайте для столбца Данные значение NULL перед обновлением записи. Другой способ — удалить запись из таблицы, удалив ее с помощью MsiViewModify или обычного SQL-запроса. Поток не должен быть получен в запись, если поток удаляется из таблицы.

Чтобы переименовать поток данных OLE, обновите столбец "Имя" записи.

Если удержание помещается в эту таблицу с помощью SQL (ALTER TABLE)

HOLD) или столбец добавляется с помощью HOLD, таблица должна быть освобождена с помощью бесплатной версии. Потоки не записываются до тех пор, пока таблица не будет освобождена или зафиксирована.