SqlFileStream コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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)
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、 Write、および 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)
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、 Write、および ReadWriteです。
FileAccess.Readを使用する場合、SqlFileStream オブジェクトを使用して、既存のすべてのデータを読み取ることができます。
FileAccess.Writeを使用する場合、SqlFileStreamは 0 バイト のファイルを指します。 オブジェクトが閉じられ、トランザクションがコミットされると、既存のデータが上書きされます。
FileAccess.ReadWriteを使用する場合、SqlFileStreamは既存のすべてのデータを含むファイルを指します。 ハンドルはファイルの先頭に配置されます。
System.IO
Seekメソッドのいずれかを使用して、ファイル内のハンドル位置を移動して、新しいデータを書き込んだり追加したりすることができます。
- options
- FileOptions
ファイルを開くときに使用するオプションを指定します。 サポートされている FileOptions 値は、 Asynchronous、 WriteThrough、 SequentialScan、および 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 に設定されました。
注釈
例外がスローされた場合は、開いているトランザクションをロールバックする必要があります。 そうしないと、データ損失が発生する可能性があります。