SqlFileStream 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 SqlFileStream 类的新实例。
重载
SqlFileStream(String, Byte[], FileAccess) |
初始化 SqlFileStream 类的新实例。 |
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
初始化 SqlFileStream 类的新实例。 |
注解
下表列出了代码访问安全性 (CAS) 权限,堆栈中的所有调用方必须使用这些 SqlFileStream
构造函数。
文件访问 | 权限 |
---|---|
读取 | Read |
写入 | Write |
ReadWrite | Read 和 Write |
有关 CAS 的详细信息,请参阅 代码访问安全性和 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
指向零字节文件。 当关闭对象并提交事务时,会覆盖现有数据。
当使用 FileAccess.ReadWrite
时,SqlFileStream
指向其中包含所有现有数据的文件。 句柄位于文件的开头。 可以使用 System.IO
Seek
方法之一在文件内移动句柄位置,以写入或追加新数据。
例外
path
为 null 引用,或者,transactionContext
为 null。
path
是一个空字符串 (""),仅包含空格,或者包含一个或多个无效字符。
path
以“\\.\”开头,例如“\\.\PHYSICALDRIVE0”。
通过调用 NTCreateFile 返回的句柄不属于类型 FILE_TYPE_DISK。
options
包含不支持的值。
找不到该文件。
出现 I/O 错误。
调用方没有所要求的权限。
指定的 path
无效,例如在非映射驱动器上。
指定的路径所对应的操作系统不允许请求的访问。 当指定 Write 或 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
指向零字节文件。 当关闭对象并提交事务时,会覆盖现有数据。
当使用 FileAccess.ReadWrite
时,SqlFileStream
指向其中包含所有现有数据的文件。 句柄位于文件的开头。 可以使用 System.IO
Seek
方法之一在文件内移动句柄位置,以写入或追加新数据。
- options
- FileOptions
指定打开文件时要使用的选项。 支持的 FileOptions 值为 Asynchronous、WriteThrough、SequentialScan 和 RandomAccess。
- allocationSize
- Int64
创建文件时要使用的分配大小。 如果设置为 0,则使用默认值。
例外
path
为 null 引用,或者,transactionContext
为 null。
path
是一个空字符串 (""),仅包含空格,或者包含一个或多个无效字符。
path
以“\\.\”开头,例如“\\.\PHYSICALDRIVE0”。
通过调用 NTCreateFile 返回的句柄不属于类型 FILE_TYPE_DISK。
options
包含不支持的值。
找不到该文件。
出现 I/O 错误。
调用方没有所要求的权限。
指定的 path
无效,例如在非映射驱动器上。
指定的路径所对应的操作系统不允许请求的访问。 当指定 Write 或 ReadWrite 访问时发生这种情况,并且文件或目录设置为只读访问。
NtCreateFile 失败,并且错误代码设置为 ERROR_SHARING_VIOLATION。
注解
如果引发异常,则应回滚所有打开的事务。 否则,可能会丢失数据。