SqlFileStream 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 SqlFileStream 類別的新執行個體。
多載
| 名稱 | Description |
|---|---|
| SqlFileStream(String, Byte[], FileAccess) |
初始化 SqlFileStream 類別的新執行個體。 |
| SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
初始化 SqlFileStream 類別的新執行個體。 |
備註
下表列出堆疊中所有呼叫者必須擁有的程式碼存取安全(CAS)權限,才能使用 SqlFileStream 建構子。
| 檔案存取 | 許可 |
|---|---|
| 讀取 | Read |
| 書寫 | Write |
| 讀寫 | Read 與 Write |
欲了解更多CAS資訊,請參閱Code Access Security及ADO.NET。
SqlFileStream(String, Byte[], FileAccess)
初始化 SqlFileStream 類別的新執行個體。
public:
SqlFileStream(System::String ^ path, cli::array <System::Byte> ^ transactionContext, System::IO::FileAccess access);
public SqlFileStream(string path, byte[] transactionContext, System.IO.FileAccess access);
new System.Data.SqlTypes.SqlFileStream : string * byte[] * System.IO.FileAccess -> System.Data.SqlTypes.SqlFileStream
Public Sub New (path As String, transactionContext As Byte(), access As FileAccess)
參數
- path
- String
檔案的邏輯路徑。 可透過資料表底層 FILESTREAM 欄位的 Transact-SQL Pathname 函式來取得路徑。
- transactionContext
- Byte[]
物件的交易上下文 SqlFileStream 。 應用程式應回傳呼叫 GET_FILESTREAM_TRANSACTION_CONTEXT 方法所回傳的位元組陣列。
- access
- FileAccess
開啟檔案時應使用的存取模式。 支援FileAccess的列舉值為 Read、 、 WriteReadWrite和 。
當使用 FileAccess.Read時, SqlFileStream 物件可以用來讀取所有現有的資料。
使用 FileAccess.Write時,指向 SqlFileStream 一個零位元組檔案。 當物件關閉並提交交易時,現有資料會被覆寫。
使用 FileAccess.ReadWrite時,會 SqlFileStream 指向一個包含所有現有資料的檔案。 把手位於檔案的開頭。 你可以使用其中一種 System.IOSeek 方法移動檔案中的handle位置,以寫入或新增資料。
例外狀況
path 是空參考,或 transactionContext 是空參考。
path 是空字串(“”),僅包含空白,或包含一個或多個無效字元。
-或-
path 以「\\.\」開頭,例如「\\.PHYSICALDRIVE0」。
-或-
呼叫 NTCreateFile 所回傳的 handle 並非 FILE_TYPE_DISK 型。
找不到該檔案。
發生 I/O 錯誤。
來電者沒有所需的權限。
指定的 path 欄位則無效,例如在未映射的硬碟上。
作業系統不允許對指定路徑的存取權限。 當指定寫入或讀寫存取,且檔案或目錄被設定為唯讀存取時,就會發生這種情況。
NtCreateFile 在錯誤代碼設為 ERROR_SHARING_VIOLATION 時會失敗。
備註
若拋出例外,所有未完成的交易都應被回滾。 否則,可能會發生資料遺失。
另請參閱
適用於
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64)
初始化 SqlFileStream 類別的新執行個體。
public:
SqlFileStream(System::String ^ path, cli::array <System::Byte> ^ transactionContext, System::IO::FileAccess access, System::IO::FileOptions options, long allocationSize);
public SqlFileStream(string path, byte[] transactionContext, System.IO.FileAccess access, System.IO.FileOptions options, long allocationSize);
new System.Data.SqlTypes.SqlFileStream : string * byte[] * System.IO.FileAccess * System.IO.FileOptions * int64 -> System.Data.SqlTypes.SqlFileStream
Public Sub New (path As String, transactionContext As Byte(), access As FileAccess, options As FileOptions, allocationSize As Long)
參數
- path
- String
檔案的邏輯路徑。 可透過資料表底層 FILESTREAM 欄位的 Transact-SQL Pathname 函式來取得路徑。
- transactionContext
- Byte[]
物件的交易上下文 SqlFileStream 。 當設為 null 時,物件會使用 SqlFileStream 隱含交易。 應用程式應回傳呼叫 GET_FILESTREAM_TRANSACTION_CONTEXT 方法所回傳的位元組陣列。
- access
- FileAccess
開啟檔案時應使用的存取模式。 支援FileAccess的列舉值為 Read、 、 WriteReadWrite和 。
當使用 FileAccess.Read時, SqlFileStream 物件可以用來讀取所有現有的資料。
使用 FileAccess.Write時,指向 SqlFileStream 一個零位元組檔案。 當物件關閉並提交交易時,現有資料會被覆寫。
使用 FileAccess.ReadWrite時,會 SqlFileStream 指向一個包含所有現有資料的檔案。 把手位於檔案的開頭。 你可以使用其中一種 System.IOSeek 方法移動檔案中的handle位置,以寫入或新增資料。
- options
- FileOptions
指定開啟檔案時可使用的選項。 支援值 FileOptions 為 Asynchronous、 WriteThrough、 SequentialScan、 RandomAccess和 。
- allocationSize
- Int64
建立檔案時應使用的配置大小。 若設為 0,則使用預設值。
例外狀況
path 是空參考,或 transactionContext 是空參考。
path 是空字串(“”),僅包含空白,或包含一個或多個無效字元。
path 以「\\.\」開頭,例如「\\.PHYSICALDRIVE0」。
呼叫 NTCreateFile 所回傳的 handle 並非類型 FILE_TYPE_DISK。
options 包含一個未被支援的值。
找不到該檔案。
發生 I/O 錯誤。
來電者沒有所需的權限。
指定的 path 欄位則無效,例如在未映射的硬碟上。
作業系統不允許對指定路徑的存取權限。 當指定寫入或讀寫存取,且檔案或目錄被設定為唯讀存取時,就會發生這種情況。
NtCreateFile 在錯誤代碼設為 ERROR_SHARING_VIOLATION 時會失敗。
備註
若拋出例外,所有未完成的交易都應被回滾。 否則,可能會發生資料遺失。