SqlFileStream 類別

定義

公開以 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)

將位元組寫入數據流中的目前位置,並將數據流中的位置往前移一個字節。

適用於

另請參閱