_Streams Tabela
A tabela _Streams lista fluxos de dados OLE incorporados. Esta é uma tabela temporária, criada somente quando referenciada por uma instrução SQL.
Coluna | Tipo | Chave | Nulo |
---|---|---|---|
Designação | de texto | Y | N |
Dados | binário | N | Y |
Colunas
-
Nome
-
Uma chave exclusiva que identifica o fluxo. O comprimento máximo de Name é de 62 caracteres.
-
Dados
-
Os dados binários não formatados.
Comentários
Para copiar um fluxo de dados OLE (por exemplo, um objeto do tipo de dados binário) de um arquivo para um banco de dados, crie um registro na tabela _Streams e insira o nome do fluxo de dados na coluna Nome desse registro e copie os dados do arquivo para a coluna Dados usando MsiRecordSetStream. Use MsiViewModify para inserir o novo registro na tabela.
Para ler um fluxo de dados binários incorporado 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ários 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 de _Streams tabela do segundo banco de dados. Isso garante que cada banco de dados tenha sua própria cópia dos dados binários. Não é possível mover dados binários de um banco de dados para outro simplesmente 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 Dados como nula antes de atualizar o registro. Outro método é remover o registro da tabela, excluindo-o usando MsiViewModify ou uma consulta SQL simples. Um fluxo não deve ser buscado em um registro se o fluxo for excluído da tabela.
Para renomear um fluxo de dados OLE, atualize a coluna 'Nome' do registro.
Se uma retenção for colocada nesta tabela usando SQL (ALTER TABLE
HOLD) ou uma coluna é adicionada com HOLD, a tabela deve ser liberada usando FREE. Os fluxos não são gravados até que a tabela tenha sido liberada ou confirmada.