SqlFileStream 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
公開以 FILESTREAM 資料行屬性儲存為位元組序列的 SQL Server 數據。
public ref class SqlFileStream sealed : System::IO::Stream
public sealed class SqlFileStream : System.IO.Stream
type SqlFileStream = class
inherit Stream
Public NotInheritable Class SqlFileStream
Inherits Stream
- 繼承
備註
此 SqlFileStream 類別用於處理 varbinary(max) SQL Server 2008 資料庫中以 FILESTREAM 屬性儲存的資料。 你必須安裝 .NET Framework 3.5 SP1(或更新版本)才能處理 SqlFileStream FILESTREAM 資料。
在欄位 varbinary(max) 上指定 FILESTREAM 屬性會使 SQL Server 將資料儲存在本地的 NTFS 檔案系統中,而非資料庫檔案中。 Transact-SQL 語句提供伺服器內的資料操作功能,而 Win32 檔案系統介面則提供資料串流存取。
Note
儲存在 FILESTREAM 欄位中的個別檔案無法直接從 NTFS 檔案系統開啟。 串流 FILESTREAM 資料僅在 SQL Server 交易情境下運作。
這個 SqlFileStream 類別是 Stream 從類別衍生而來,類別代表從某個任意資料來源(如檔案或記憶體區塊)抽象出一串位元組的序列。 你可以透過將資料從串流中傳輸到資料結構(例如位元組陣列)來讀取檔案串流。 你可以透過將資料從資料結構轉移到串流中來寫入檔案串流。 你也可以在串流中尋找,這讓你能查詢並修改串流中當前位置的資料。
關於概念性文件與程式碼範例,請參見 FILESTREAM Data。
建構函式
| 名稱 | Description |
|---|---|
| SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
初始化 SqlFileStream 類別的新執行個體。 |
| SqlFileStream(String, Byte[], FileAccess) |
初始化 SqlFileStream 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| CanRead |
會得到一個值,表示目前串流是否支援讀取。 |
| CanSeek |
會獲得一個值,表示目前串流是否支援尋道。 |
| CanTimeout |
會得到一個值,表示目前串流是否會超時。 |
| CanWrite |
會得到一個值,表示目前串流是否支援寫入。 |
| Length |
會獲得一個表示目前串流長度(位元組)的值。 |
| Name |
取得傳遞給建構子的 SqlFileStream 邏輯路徑。 |
| Position |
取得或設定目前數據流中的位置。 |
| ReadTimeout |
會取得或設定一個以毫秒為單位的值,決定串流在逾時前嘗試讀取的時間長短。 |
| TransactionContext |
取得或設定此 SqlFileStream 物件的交易上下文。 |
| WriteTimeout |
取得或設定一個毫秒級的值,決定串流在逾時前嘗試寫入的時間長短。 |
方法
| 名稱 | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
開始異步讀取作業。 |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
開始異步寫入作業。 |
| Close() |
關閉目前串流並釋放與目前串流相關的資源(如套接字和檔案柄)。 與其呼叫此方法,不如確保溪流已被妥善處理。 (繼承來源 Stream) |
| CopyTo(Stream, Int32) |
從目前串流讀取位元組,並依指定緩衝區大小寫入另一串流。 兩個串流的位置依複製的位元組數前進。 (繼承來源 Stream) |
| CopyTo(Stream) |
從目前串流讀取位元組,然後寫入另一條串流。 兩個串流的位置依複製的位元組數前進。 (繼承來源 Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
非同步地從目前串流讀取位元組,並使用指定的緩衝區大小與取消標記寫入另一串流。 兩個串流的位置依複製的位元組數前進。 (繼承來源 Stream) |
| CopyToAsync(Stream, Int32) |
非同步讀取目前串流的位元組,並以指定的緩衝區大小寫入另一串流。 兩個串流的位置依複製的位元組數前進。 (繼承來源 Stream) |
| CopyToAsync(Stream) |
非同步地從目前串流讀取位元組,然後寫入另一條串流。 兩個串流的位置依複製的位元組數前進。 (繼承來源 Stream) |
| CreateObjRef(Type) |
建立一個物件,包含產生代理伺服器所需的所有相關資訊,用於與遠端物件通訊。 (繼承來源 MarshalByRefObject) |
| CreateWaitHandle() |
已淘汰.
已淘汰.
已淘汰.
分配一個 WaitHandle 物件。 (繼承來源 Stream) |
| Dispose() |
釋放所有由 Stream. (繼承來源 Stream) |
| Dispose(Boolean) |
釋放 未管理的資源, Stream 並可選擇性地釋放受管理資源。 (繼承來源 Stream) |
| EndRead(IAsyncResult) |
等候暫止的異步讀取完成。 |
| EndWrite(IAsyncResult) |
結束異步寫入作業。 |
| Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
| Finalize() |
確保當垃圾回收器 SqlFileStream回收時,資源被釋放並執行其他清理作業。 |
| Flush() |
清除該串流的所有緩衝區,並讓任何緩衝資料寫入底層裝置。 |
| FlushAsync() |
非同步清除此串流的所有緩衝區,並使任何緩衝資料寫入底層裝置。 (繼承來源 Stream) |
| FlushAsync(CancellationToken) |
非同步清除此串流的所有緩衝區,導致任何緩衝資料寫入底層裝置,並監控取消請求。 (繼承來源 Stream) |
| GetHashCode() |
做為預設哈希函式。 (繼承來源 Object) |
| GetLifetimeService() |
已淘汰.
取得目前控制此實例生命週期政策的終身服務物件。 (繼承來源 MarshalByRefObject) |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| InitializeLifetimeService() |
已淘汰.
取得一個終身服務物件以控制此實例的終身政策。 (繼承來源 MarshalByRefObject) |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| MemberwiseClone(Boolean) |
建立一個 MarshalByRefObject 目前物件的淺層複製品。 (繼承來源 MarshalByRefObject) |
| ObjectInvariant() |
已淘汰.
提供 。Contract (繼承來源 Stream) |
| Read(Byte[], Int32, Int32) |
從目前數據流讀取位元組序列,並依讀取的位元元組數目將數據流中的位置往前移。 |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
以異步方式從目前數據流讀取位元組序列、依讀取的位元元組數目將數據流中的位置往前移,並監視取消要求。 (繼承來源 Stream) |
| ReadAsync(Byte[], Int32, Int32) |
非同步讀取當前串流的位元組序列,並依讀取位元組數推進串流中的位置。 (繼承來源 Stream) |
| ReadByte() |
從串流讀取一個位元組,並將串流中的位置往前推進一個位元組,若在串流末端則返回 -1。 |
| Seek(Int64, SeekOrigin) |
設定目前數據流中的位置。 |
| SetLength(Int64) |
設定目前數據流的長度。 |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |
| Write(Byte[], Int32, Int32) |
將一串位元組寫入目前串流,並依照寫入的位元組數將目前位置往前推進。 |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
以異步方式將位元組序列寫入至目前的數據流、依寫入的位元組數目將這個數據流中的目前位置往前移,並監視取消要求。 (繼承來源 Stream) |
| WriteAsync(Byte[], Int32, Int32) |
非同步地將一串位元組寫入目前串流,並依照寫入的位元組數將該串流中的當前位置往前推進。 (繼承來源 Stream) |
| WriteByte(Byte) |
將位元組寫入數據流中的目前位置,並將數據流中的位置往前移一個字節。 |