SqlFileStream Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса SqlFileStream.
Перегрузки
| SqlFileStream(String, Byte[], FileAccess) |
Инициализирует новый экземпляр класса SqlFileStream. |
| SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
Инициализирует новый экземпляр класса SqlFileStream. |
Комментарии
В следующей таблице перечислены разрешения безопасности доступа к коду (CAS), которые должны иметь все вызывающие элементы в стеке SqlFileStream для использования конструкторов.
| Доступ к файлам | Разрешение |
|---|---|
| Чтение | 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
Логический путь к файлу. Путь можно получить с помощью функции Pathname Transact-SQL в основном столбце FILESTREAM в таблице.
- transactionContext
- Byte[]
Контекст транзакции для объекта SqlFileStream. Приложения должны возвращать массив байтов, возвращаемый путем вызова метода GET_FILESTREAM_TRANSACTION_CONTEXT.
- access
- FileAccess
Режим доступа, используемый при открытии файла. Поддерживаются следующие значения перечисления FileAccess: Read, Write и ReadWrite.
При использовании FileAccess.Read объект SqlFileStream можно использовать для считывания всех существующих данных.
При использовании FileAccess.WriteSqlFileStream указывает на файл нулевой длины. Существующие данные будут перезаписаны при закрытии объекта и фиксации транзакции.
При использовании FileAccess.ReadWriteSqlFileStream указывает на файл, содержащий все существующие данные. Дескриптор размещается в начале файла. Для перемещения положения дескриптора в файле с целью записи или добавления новых данных можно использовать один из методов System.IOSeek.
Исключения
path является пустой ссылкой, или transactionContext имеет значение NULL.
path представляет собой пустую строку (""), содержащую только пробел или хотя бы один недопустимый символ.
path начинается с "\\.\", например "\\.\PHYSICALDRIVE0".
Маркер, возвращенный вызовом в NTCreateFile, не относится к типу FILE_TYPE_DISK.
options содержит неподдерживаемое значение.
Файл не найден.
Ошибка ввода/вывода.
У вызывающего объекта отсутствует необходимое разрешение.
Указан недопустимый 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
Логический путь к файлу. Путь можно получить с помощью функции Pathname Transact-SQL в основном столбце FILESTREAM в таблице.
- transactionContext
- Byte[]
Контекст транзакции для объекта SqlFileStream. Если задано значение NULL, для объекта SqlFileStream будет использоваться неявная транзакция. Приложения должны возвращать массив байтов, возвращаемый путем вызова метода GET_FILESTREAM_TRANSACTION_CONTEXT.
- access
- FileAccess
Режим доступа, используемый при открытии файла. Поддерживаются следующие значения перечисления FileAccess: Read, Write и ReadWrite.
При использовании FileAccess.Read объект SqlFileStream можно использовать для считывания всех существующих данных.
При использовании FileAccess.WriteSqlFileStream указывает на файл нулевой длины. Существующие данные будут перезаписаны при закрытии объекта и фиксации транзакции.
При использовании FileAccess.ReadWriteSqlFileStream указывает на файл, содержащий все существующие данные. Дескриптор размещается в начале файла. Для перемещения положения дескриптора в файле с целью записи или добавления новых данных можно использовать один из методов System.IOSeek.
- options
- FileOptions
Задает параметр, используемый при открытии файла. Допустимые значения FileOptions: Asynchronous, WriteThrough, SequentialScan и RandomAccess.
- allocationSize
- Int64
Размер выделения для использования при создании файла. Если задано значение 0, используется значение по умолчанию.
Исключения
path является пустой ссылкой, или transactionContext имеет значение NULL.
path представляет собой пустую строку (""), содержащую только пробел или хотя бы один недопустимый символ.
path начинается с "\\.\", например "\\.\PHYSICALDRIVE0".
Дескриптор, возвращенный вызовом NTCreateFile, не относится к типу FILE_TYPE_DISK.
options содержит неподдерживаемое значение.
Файл не найден.
Ошибка ввода/вывода.
У вызывающего объекта отсутствует необходимое разрешение.
Указан недопустимый path (например, он ведет на несопоставленный диск).
Запрошенный доступ не разрешен операционной системой для указанного пути. Это происходит, если задан режим доступа с правом чтения или чтения и записи, а для файла или каталога задан режим доступа только для чтения.
NtCreateFile завершается сбоем с кодом ошибки ERROR_SHARING_VIOLATION.
Комментарии
При возникновении исключения необходимо выполнить откат всех открытых транзакций. В противном случае может произойти потеря данных.