Table _Streams
La table _Streams répertorie les flux de données OLE incorporés. Il s’agit d’une table temporaire, créée uniquement quand elle est référencée par une instruction SQL.
Colonne | Type | Clé | Nullable |
---|---|---|---|
Nom | Texte | O | N |
Données | Binaire | N | O |
Colonnes
-
Nom
-
Clé unique qui identifie le flux. La longueur maximale de Nom est de 62 caractères.
-
Données
-
Données binaires non mises en forme.
Notes
Pour copier un flux de données OLE (par exemple, un objet du type de données Binaire) à partir d’un fichier dans une base de données, créez un enregistrement dans la table _Streams et entrez le nom du flux de données dans la colonne Nom de cet enregistrement et copiez les données du fichier dans la colonne Données à l’aide de MsiRecordSetStream. Utilisez MsiViewModify pour insérer le nouvel enregistrement dans la table.
Pour lire un flux de données binaires incorporé dans une base de données, utilisez une requête SQL pour rechercher et extraire l’enregistrement contenant les données binaires. Utilisez MsiRecordReadStream pour lire les données binaires sur une mémoire tampon.
Pour déplacer un flux de données binaires d’une base de données vers une autre, commencez par exporter les données vers un fichier. Utilisez une requête SQL pour rechercher le flux de données dans le fichier et utilisez MsiRecordSetStream pour copier les données du fichier dans la colonne Données de la table _Streams de la deuxième base de données. Cela garantit que chaque base de données a sa propre copie des données binaires. Vous ne pouvez pas déplacer des données binaires d’une base de données à une autre simplement en extrayant un enregistrement avec les données de la première base de données et en les insérant dans la deuxième base de données.
Pour supprimer un flux de données, récupérez l’enregistrement et définissez la colonne Données sur null avant de mettre à jour l’enregistrement. Une autre méthode consiste à supprimer l’enregistrement de la table, en le supprimant à l’aide de MsiViewModify ou d’une requête SQL simple. Un flux ne doit pas être extrait dans un enregistrement si le flux est supprimé de la table.
Pour renommer un flux de données OLE, mettez à jour la colonne Nom de l’enregistrement.
Si une conservation est placée sur cette table avec SQL (ALTER TABLE
HOLD) ou qu’une colonne est ajoutée avec HOLD, la table doit être libérée avec FREE. Les flux ne sont pas écrits tant que la table n’a pas été publiée ou validée.