在用戶端應用程式中使用 FILESTREAM 儲存體
當您使用 FILESTREAM 來儲存二進位大型物件 (BLOB) 資料時,可以使用 Win32 API 來處理檔案。為了支援在 Win32 應用程式中使用 FILESTREAM BLOB 資料,SQL Server 提供了下列函數和 API:
PathName 會將路徑當做 Token 傳給 BLOB。應用程式會使用此 Token 來取得 Win32 控制代碼,並在 BLOB 資料上運作。
GET_FILESTREAM_TRANSACTION_CONTEXT() 會傳回代表工作階段之目前交易的 Token。應用程式會使用此 Token 將 FILESTREAM 檔案系統資料流作業繫結至此交易。
OpenSqlFilestream API 會取得 Win32 檔案控制代碼。應用程式會使用此控制代碼來為 FILESTREAM 資料進行資料流處理,然後將此控制代碼傳遞給下列 Win32 API:ReadFile、WriteFile、TransmitFile、SetFilePointer、SetEndOfFile 或 FlushFileBuffers。如果應用程式使用此控制代碼呼叫任何其他 API,就會傳回 ERROR_ACCESS_DENIED 錯誤。應用程式應該使用 CloseHandle 來關閉此控制代碼。
所有的 FILESTREAM 資料容器存取都會在 SQL Server 交易中執行。Transact-SQL 陳述式可以在相同的交易中執行,以維護 SQL 資料與 FILESTREAM 資料之間的一致性。