共用方式為


_Streams數據表

_Streams數據表會列出內嵌的 OLE 數據流。 這是臨時表,只有在 SQL 語句參考時才建立。

類型 鑰匙
名字 文字 Y N
數據 二進位 N Y

 

名稱

識別數據流的唯一索引鍵。 Name 的最大長度為 62 個字元。

數據

未格式化的二進位數據。

言論

若要將 OLE 數據流(例如,二進位 數據類型的物件)從檔案複製到資料庫,請在_Streams數據表中建立記錄,並將數據流的名稱輸入到此記錄的 Name 數據行,並使用 msiRecordSetStream將檔案中的數據複製到 Data 數據行。 使用 MsiViewModify,將新記錄插入數據表中。

若要讀取內嵌在資料庫中的二進位數據流,請使用 SQL 查詢來尋找並擷取包含二進位數據的記錄。 使用 MsiRecordReadStream 將二進位數據讀入緩衝區。

若要將二進位數據流從某個資料庫移至另一個資料庫,請先將數據匯出至檔案。 使用 SQL 查詢來尋找檔案中的數據流,並使用 MsiRecordSetStream,將數據從檔案複製到第二個資料庫的 _Streams 數據表的數據行。 這可確保每個資料庫都有自己的二進位數據複本。 您只要從第一個資料庫擷取具有數據並插入第二個資料庫的記錄,就無法將二進位數據從一個資料庫移至另一個資料庫。

若要刪除數據流,請先擷取記錄,並將 [資料] 資料行設定為 Null,再更新記錄。 另一種方法是從數據表中移除記錄,請使用 MsiViewModify 或一般 SQL 查詢加以刪除。 如果數據流從數據表中刪除,則不應該將數據流擷取到記錄中。

若要重新命名 OLE 資料流,請更新記錄的 『Name』 資料行。

如果使用 SQL 將保留放在此數據表上(ALTER TABLE

HOLD) 或具有 HOLD 的數據行,必須使用 FREE 釋放數據表。 在數據表發行或認可之前,不會寫入數據流。