\_Streams-Tabelle

Die \_Streams-Tabelle enthält eingebettete OLE-Datenströme. Es handelt sich eine temporäre Tabelle, die nur erstellt wird, wenn eine SQL-Anweisung auf sie verweist.

Spalte Typ Schlüssel Nullwerte zulässig
Name Text J N
Daten Binär (Binary) N J

 

Spalten

Name

Ein eindeutiger Schlüssel, der den Datenstrom identifiziert. Die maximale Länge von „Name“ ist 62 Zeichen.

Data

Die unformatierten Binärdaten.

Bemerkungen

Um einen OLE-Datenstrom (z. B. ein Objekt des Binary-Datentyps) aus einer Datei in eine Datenbank zu kopieren, erstellen Sie in der \_Streams-Tabelle einen Datensatz und geben den Namen des Datenstroms in die Name-Spalte dieses Datensatzes ein. Kopieren Sie dann mit MsiRecordSetStream die Daten aus der Datei in die Data-Spalte. Verwenden Sie MsiViewModify, um den neuen Datensatz in die Tabelle einzufügen.

Zum Lesen eines in eine Datenbank eingebetteten Binärdatenstroms verwenden Sie eine SQL-Abfrage, mit der Sie den Datensatz mit den binären Daten ermitteln und abrufen können. Verwenden Sie MsiRecordReadStream, um die Binärdaten in einen Puffer einzulesen.

Um einen binären Datenstrom von einer Datenbank in eine andere zu verschieben, exportieren Sie die Daten zuerst in eine Datei. Ermitteln Sie mit einer SQL-Abfrage den Datenstrom in der Datei, und verwenden Sie MsiRecordSetStream, um die Daten aus der Datei in die Data-Spalte der \_Streams-Tabelle der zweiten Datenbank zu kopieren. Dadurch wird sichergestellt, dass jede Datenbank über eine eigene Kopie der Binärdaten verfügt. Sie können Binärdaten nicht einfach aus einer Datenbank in eine andere verschieben, indem Sie einen Datensatz mit den Daten aus der ersten Datenbank abrufen und ihn in die zweite Datenbank einfügen.

Zum Löschen eines Datenstroms rufen Sie den Datensatz ab und legen die Data-Spalte auf NULL fest, ehe Sie den Datensatz aktualisieren. Eine andere Methode besteht darin, den Datensatz aus der Tabelle zu entfernen und ihn entweder mithilfe von MsiViewModify oder einer einfachen SQL-Abfrage zu löschen. Ein Datenstrom darf nicht in einen Datensatz abgerufen werden, wenn der Datenstrom aus der Tabelle gelöscht wird.

Zum Umbenennen eines OLE-Datenstroms ändern Sie die Name-Spalte des Datensatzes.

Wenn diese Tabelle mithilfe von SQL (ALTER TABLE

HOLD) mit HOLD versehen oder eine Spalte mit HOLD hinzugefügt wird, muss die Tabelle mit FREE freigegeben werden. Datenströme werden erst geschrieben, wenn die Tabelle freigegeben oder committet wurde.