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.IOSeek 方法之一在文件内移动句柄位置,以写入或追加新数据。
例外
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.IOSeek 方法之一在文件内移动句柄位置,以写入或追加新数据。
- 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。
注解
如果引发异常,则应回滚所有打开的事务。 否则,可能会丢失数据。