SqlFileStream コンストラクター

定義

SqlFileStream クラスの新しいインスタンスを初期化します。

オーバーロード

SqlFileStream(String, Byte[], FileAccess)

SqlFileStream クラスの新しいインスタンスを初期化します。

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

SqlFileStream クラスの新しいインスタンスを初期化します。

注釈

次の表に、スタック内のすべての呼び出し元がコンストラクターを使用するために必要なコード アクセス セキュリティ (CAS) のアクセス許可を SqlFileStream 示します。

ファイル アクセス 権限
Read Read
Write Write
ReadWrite Read および Write

CAS の詳細については、「Code Access Security and 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 列挙値は ReadWrite、および ReadWrite です。

FileAccess.Read を使用する際には、SqlFileStream オブジェクトを使用して、既存のデータをすべて読み取ることができます。

FileAccess.Write を使用する際に、SqlFileStream は 0 バイトのファイルを指します。 オブジェクトが閉じ、トランザクションがコミットされると、既存のデータが上書きされます。

FileAccess.ReadWrite を使用する際に、SqlFileStream はすべての既存のデータがあるファイルを指します。 このファイルの先頭にハンドルが配置されます。 System.IOSeek メソッドの 1 つを使用して、ファイル内でハンドルの位置を移動し、新しいデータを書き込んだり付加したりできます。

例外

path が null 参照か、transactionContext が null です。

path は空の文字列 ("") であるか、空白のみで構成されているか、または 1 つ以上の正しくない文字を含んでいます。

path は "\\.\" で始まります。たとえば、"\\.\PHYSICALDRIVE0 " のようになります。

NTCreateFile に対する呼び出しで返されたハンドルの型が FILE_TYPE_DISK ではありません。

サポートされていない値が options に含まれています。

ファイルが見つかりません。

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 列挙値は ReadWrite、および ReadWrite です。

FileAccess.Read を使用する際には、SqlFileStream オブジェクトを使用して、既存のデータをすべて読み取ることができます。

FileAccess.Write を使用する際に、SqlFileStream は 0 バイトのファイルを指します。 オブジェクトが閉じ、トランザクションがコミットされると、既存のデータが上書きされます。

FileAccess.ReadWrite を使用する際に、SqlFileStream はすべての既存のデータがあるファイルを指します。 このファイルの先頭にハンドルが配置されます。 System.IOSeek メソッドの 1 つを使用して、ファイル内でハンドルの位置を移動し、新しいデータを書き込んだり付加したりできます。

options
FileOptions

ファイルを開く際に使用するオプションを指定します。 サポートされる FileOptions 値は AsynchronousWriteThroughSequentialScan、および RandomAccess です。

allocationSize
Int64

ファイル作成時に使用する割り当てサイズ。 0 に設定されている場合、既定値が使用されます。

例外

path が null 参照か、transactionContext が null です。

path は空の文字列 ("") であるか、空白のみで構成されているか、または 1 つ以上の正しくない文字を含んでいます。

path は "\\.\" で始まります。たとえば、"\\.\PHYSICALDRIVE0 " のようになります。

NTCreateFile に対する呼び出しで返されたハンドルの型が FILE_TYPE_DISK ではありません。

サポートされていない値が options に含まれています。

ファイルが見つかりません。

I/O エラーが発生しました。

呼び出し元に、必要なアクセス許可がありません。

マップされていないドライブにあるなど、指定された path が正しくありません。

指定されたパスへの要求されたアクセスは、オペレーティング システムによって許可されていません。 これは、書き込みアクセスか読み取り/書き込みアクセスが指定されており、ファイルまたはディレクトリが読み取り専用アクセス用に設定されている場合に発生します。

NtCreateFile は失敗し、エラー コードは ERROR_SHARING_VIOLATION に設定されます。

注釈

例外がスローされた場合は、開いているトランザクションをロールバックする必要があります。 そうしないと、データ損失が発生する可能性があります。

こちらもご覧ください

適用対象