SqlFileStream 建構函式

定義

初始化 SqlFileStream 類別的新執行個體。

多載

名稱 Description
SqlFileStream(String, Byte[], FileAccess)

初始化 SqlFileStream 類別的新執行個體。

SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64)

初始化 SqlFileStream 類別的新執行個體。

備註

下表列出堆疊中所有呼叫者必須擁有的程式碼存取安全(CAS)權限,才能使用 SqlFileStream 建構子。

檔案存取 許可
讀取 Read
書寫 Write
讀寫 ReadWrite

欲了解更多CAS資訊,請參閱Code Access Security及ADO.NET

SqlFileStream(String, Byte[], FileAccess)

來源:
System.Data.SqlClient.notsupported.cs

初始化 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)

來源:
System.Data.SqlClient.notsupported.cs

初始化 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

指定開啟檔案時可使用的選項。 支援值 FileOptionsAsynchronousWriteThroughSequentialScanRandomAccess和 。

allocationSize
Int64

建立檔案時應使用的配置大小。 若設為 0,則使用預設值。

例外狀況

path 是空參考,或 transactionContext 是空參考。

path 是空字串(“”),僅包含空白,或包含一個或多個無效字元。

path 以「\\.\」開頭,例如「\\.PHYSICALDRIVE0」。

呼叫 NTCreateFile 所回傳的 handle 並非類型 FILE_TYPE_DISK。

options 包含一個未被支援的值。

找不到該檔案。

發生 I/O 錯誤。

來電者沒有所需的權限。

指定的 path 欄位則無效,例如在未映射的硬碟上。

作業系統不允許對指定路徑的存取權限。 當指定寫入或讀寫存取,且檔案或目錄被設定為唯讀存取時,就會發生這種情況。

NtCreateFile 在錯誤代碼設為 ERROR_SHARING_VIOLATION 時會失敗。

備註

若拋出例外,所有未完成的交易都應被回滾。 否則,可能會發生資料遺失。

另請參閱

適用於