Tabela _Streams
A tabela _Streams lista os fluxos de dados OLE inseridos. Essa é uma tabela temporária, criada somente quando referenciada por uma instrução SQL.
Coluna | Tipo | Chave | Nullable |
---|---|---|---|
Nome | Texto | S | N |
Dados | Binary | N | S |
Colunas
-
Name
-
Uma chave exclusiva que identifica o fluxo. O comprimento máximo de Name é de 62 caracteres.
-
Data
-
Os dados binários não formatados.
Comentários
Para copiar um fluxo de dados OLE (por exemplo, um objeto do tipo de dados Binary) de um arquivo para um banco de dados, crie um registro na tabela _Streams, insira o nome do fluxo de dados na coluna Name desse registro e copie os dados do arquivo para a coluna Data usando MsiRecordSetStream. Use MsiViewModify para inserir o novo registro na tabela.
Para ler um fluxo de dados binário inserido em um banco de dados, use uma consulta SQL para localizar e buscar o registro que contém os dados binários. Use MsiRecordReadStream para ler os dados binários em um buffer.
Para mover um fluxo de dados binário de um banco de dados para outro, primeiro, exporte os dados para um arquivo. Use uma consulta SQL para localizar o fluxo de dados no arquivo e use MsiRecordSetStream para copiar os dados do arquivo para a coluna Data da tabela _Streams do segundo banco de dados. Isso garante que cada banco de dados tenha uma cópia própria dos dados binários. Não é possível mover dados binários de um banco de dados para outro apenas buscando um registro com os dados do primeiro banco de dados e inserindo-os no segundo banco de dados.
Para excluir um fluxo de dados, busque o registro e defina a coluna Data como nula antes de atualizar o registro. Outro método é remover o registro da tabela, excluindo-o por meio de MsiViewModify ou de uma consulta SQL simples. Um fluxo não deve ser buscado em um registro se o fluxo foi excluído da tabela.
Para renomear um fluxo de dados OLE, atualize a coluna 'Name' do registro.
Se uma retenção for colocada nessa tabela por meio de SQL (ALTER TABLE
HOLD) ou uma coluna for adicionada com HOLD, a tabela precisará ser liberada por meio de FREE. Os fluxos só são gravados quando a tabela é liberada ou confirmada.