SqlFileStream コンストラクター

定義

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

オーバーロード

名前 説明
SqlFileStream(String, Byte[], FileAccess)

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

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

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

注釈

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

ファイル アクセス 許可
Read Read
書き込む Write
ReadWrite Read および Write

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

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

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

FileAccess.ReadWriteを使用する場合、SqlFileStreamは既存のすべてのデータを含むファイルを指します。 ハンドルはファイルの先頭に配置されます。 System.IO Seekメソッドのいずれかを使用して、ファイル内のハンドル位置を移動して、新しいデータを書き込んだり追加したりすることができます。

例外

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

path が空の文字列 ("") であるか、空白のみを含むか、1 つ以上の無効な文字が含まれています。

-又は-

path は "\\.\" で始まります。たとえば、"\\.\PHYSICALDRIVE0" です。

-又は-

NTCreateFile の呼び出しによって返されるハンドルは、FILE_TYPE_DISK型ではありません。

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

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

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

指定した path が無効です (マップされていないドライブなど)。

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

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

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

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

FileAccess.ReadWriteを使用する場合、SqlFileStreamは既存のすべてのデータを含むファイルを指します。 ハンドルはファイルの先頭に配置されます。 System.IO Seekメソッドのいずれかを使用して、ファイル内のハンドル位置を移動して、新しいデータを書き込んだり追加したりすることができます。

options
FileOptions

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

allocationSize
Int64

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

例外

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

path が空の文字列 ("") であるか、空白のみを含むか、1 つ以上の無効な文字が含まれています。

path は "\\.\" で始まります。たとえば、"\\.\PHYSICALDRIVE0" です。

NTCreateFile の呼び出しによって返されるハンドルは、FILE_TYPE_DISK型ではありません。

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

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

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

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

指定した path が無効です (マップされていないドライブなど)。

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

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

注釈

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

こちらもご覧ください

適用対象