SqlFileStream Constructors
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Initializes a new instance of the SqlFileStream class.
Overloads
SqlFileStream(String, Byte[], FileAccess) |
Initializes a new instance of the SqlFileStream class. |
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
Initializes a new instance of the SqlFileStream class. |
Remarks
The following table lists the code access security (CAS) permissions that all callers in the stack must have to use the SqlFileStream
constructors.
File access | Permission |
---|---|
Read | Read |
Write | Write |
ReadWrite | Read and Write |
For more information about CAS, see Code Access Security and ADO.NET.
SqlFileStream(String, Byte[], FileAccess)
Initializes a new instance of the SqlFileStream class.
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)
Parameters
- path
- String
The logical path to the file. The path can be retrieved by using the Transact-SQL Pathname function on the underlying FILESTREAM column in the table.
- transactionContext
- Byte[]
The transaction context for the SqlFileStream
object. Applications should return the byte array returned by calling the GET_FILESTREAM_TRANSACTION_CONTEXT method.
- access
- FileAccess
The access mode to use when opening the file. Supported FileAccess enumeration values are Read, Write, and ReadWrite.
When using FileAccess.Read
, the SqlFileStream
object can be used to read all of the existing data.
When using FileAccess.Write
, SqlFileStream
points to a zero byte file. Existing data will be overwritten when the object is closed and the transaction is committed.
When using FileAccess.ReadWrite
, the SqlFileStream
points to a file which has all the existing data in it. The handle is positioned at the beginning of the file. You can use one of the System.IO
Seek
methods to move the handle position within the file to write or append new data.
Exceptions
path
is a null reference, or transactionContext
is null.
path
is an empty string (""), contains only white space, or contains one or more invalid characters.
path
begins with "\\.\", for example "\\.\PHYSICALDRIVE0 ".
The handle returned by the call to NTCreateFile is not of type FILE_TYPE_DISK.
options
contains an unsupported value.
The file cannot be found.
An I/O error occurred.
The caller does not have the required permission.
The specified path
is invalid, such as being on an unmapped drive.
The access requested is not permitted by the operating system for the specified path. This occurs when Write or ReadWrite access is specified, and the file or directory is set for read-only access.
NtCreateFile fails with error code set to ERROR_SHARING_VIOLATION.
Remarks
If an exception is thrown, any open transactions should be rolled back. Otherwise, data loss can occur.
See also
Applies to
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64)
Initializes a new instance of the SqlFileStream class.
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)
Parameters
- path
- String
The logical path to the file. The path can be retrieved by using the Transact-SQL Pathname function on the underlying FILESTREAM column in the table.
- transactionContext
- Byte[]
The transaction context for the SqlFileStream
object. When set to null, an implicit transaction will be used for the SqlFileStream
object. Applications should return the byte array returned by calling the GET_FILESTREAM_TRANSACTION_CONTEXT method.
- access
- FileAccess
The access mode to use when opening the file. Supported FileAccess enumeration values are Read, Write, and ReadWrite.
When using FileAccess.Read
, the SqlFileStream
object can be used to read all of the existing data.
When using FileAccess.Write
, SqlFileStream
points to a zero byte file. Existing data will be overwritten when the object is closed and the transaction is committed.
When using FileAccess.ReadWrite
, the SqlFileStream
points to a file which has all the existing data in it. The handle is positioned at the beginning of the file. You can use one of the System.IO
Seek
methods to move the handle position within the file to write or append new data.
- options
- FileOptions
Specifies the option to use while opening the file. Supported FileOptions values are Asynchronous, WriteThrough, SequentialScan, and RandomAccess.
- allocationSize
- Int64
The allocation size to use while creating a file. If set to 0, the default value is used.
Exceptions
path
is a null reference, or transactionContext
is null.
path
is an empty string (""), contains only white space, or contains one or more invalid characters.
path
begins with "\\.\", for example "\\.\PHYSICALDRIVE0 ".
The handle returned by call to NTCreateFile is not of type FILE_TYPE_DISK.
options
contains an unsupported value.
The file cannot be found.
An I/O error occurred.
The caller does not have the required permission.
The specified path
is invalid, such as being on an unmapped drive.
The access requested is not permitted by the operating system for the specified path. This occurs when Write or ReadWrite access is specified, and the file or directory is set for read-only access.
NtCreateFile fails with error code set to ERROR_SHARING_VIOLATION.
Remarks
If an exception is thrown, any open transactions should be rolled back. Otherwise, data loss can occur.