_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 を使用してテーブルを解放する必要があります。 テーブルが解放またはコミットされるまで、ストレージは書き込まれません。