SqlFileStream コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 列挙値は Read、Write、および ReadWrite です。
FileAccess.Read
を使用する際には、SqlFileStream
オブジェクトを使用して、既存のデータをすべて読み取ることができます。
FileAccess.Write
を使用する際に、SqlFileStream
は 0 バイトのファイルを指します。 オブジェクトが閉じ、トランザクションがコミットされると、既存のデータが上書きされます。
FileAccess.ReadWrite
を使用する際に、SqlFileStream
はすべての既存のデータがあるファイルを指します。 このファイルの先頭にハンドルが配置されます。 System.IO
Seek
メソッドの 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 列挙値は Read、Write、および ReadWrite です。
FileAccess.Read
を使用する際には、SqlFileStream
オブジェクトを使用して、既存のデータをすべて読み取ることができます。
FileAccess.Write
を使用する際に、SqlFileStream
は 0 バイトのファイルを指します。 オブジェクトが閉じ、トランザクションがコミットされると、既存のデータが上書きされます。
FileAccess.ReadWrite
を使用する際に、SqlFileStream
はすべての既存のデータがあるファイルを指します。 このファイルの先頭にハンドルが配置されます。 System.IO
Seek
メソッドの 1 つを使用して、ファイル内でハンドルの位置を移動し、新しいデータを書き込んだり付加したりできます。
- 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
が正しくありません。
指定されたパスへの要求されたアクセスは、オペレーティング システムによって許可されていません。 これは、書き込みアクセスか読み取り/書き込みアクセスが指定されており、ファイルまたはディレクトリが読み取り専用アクセス用に設定されている場合に発生します。
NtCreateFile は失敗し、エラー コードは ERROR_SHARING_VIOLATION に設定されます。
注釈
例外がスローされた場合は、開いているトランザクションをロールバックする必要があります。 そうしないと、データ損失が発生する可能性があります。
こちらもご覧ください
適用対象
.NET