_Storages テーブル
\_Storages テーブルには、埋め込み OLE データ ストレージが一覧表示されます。 これは一時テーブルであり、SQL ステートメントによって参照された場合にのみ作成されます。
Column | 種類 | キー | Nullable |
---|---|---|---|
名前 | テキスト | Y | N |
Data | Binary | N | Y |
[列]
-
Name
-
ストレージを識別する一意のキー。 Name の最大長は 62 文字です。
-
Data
-
書式設定されていないバイナリ データ。
解説
OLE ストレージをデータベースに追加するには、_Storages テーブルに新しいレコードを作成し、ストレージの名前を Name 列に入力します。 MsiRecordSetStream を使用して、このレコードの Data 列にデータをコピーします。 最後に、MsiViewModify を使用して、_Storages テーブルにレコードを挿入します。
データを _Storages テーブルから読み取ることはできません。 ただし、_Storages テーブルにクエリを実行して、特定のストレージの存在をチェックできます。 これは、OLE ストレージをあるデータベースから別のデータベースに移動することはできないことを意味しています。 代わりに、元のストレージ ファイルを新しいデータベースにインポートする必要があります。OLE ストレージを削除するには、バイナリ データを含むレコードをフェッチし、_Storages テーブルの Data 列を null に設定してから、レコードを更新します。 もう 1 つの方法は、MsiViewModify またはプレーン SQL クエリを使用してレコードを削除する方法です。
OLE ストレージの名前を変更するには、レコードの Name 列を更新します。
SQL (ALTER TABLE HOLD) を使用してこのテーブルにホールドが設定されている場合、
または HOLD で列が追加されている場合、FREE を使用してテーブルを解放する必要があります。 テーブルが解放またはコミットされるまで、ストレージは書き込まれません。