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.Write
SqlFileStream
указывает на файл нулевой длины. Существующие данные будут перезаписаны при закрытии объекта и фиксации транзакции.
При использовании FileAccess.ReadWrite
SqlFileStream
указывает на файл, содержащий все существующие данные. Дескриптор размещается в начале файла. Для перемещения положения дескриптора в файле с целью записи или добавления новых данных можно использовать один из методов System.IO
Seek
.
Исключения
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.Write
SqlFileStream
указывает на файл нулевой длины. Существующие данные будут перезаписаны при закрытии объекта и фиксации транзакции.
При использовании FileAccess.ReadWrite
SqlFileStream
указывает на файл, содержащий все существующие данные. Дескриптор размещается в начале файла. Для перемещения положения дескриптора в файле с целью записи или добавления новых данных можно использовать один из методов System.IO
Seek
.
- 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.
Комментарии
При возникновении исключения необходимо выполнить откат всех открытых транзакций. В противном случае может произойти потеря данных.