Поделиться через


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.

Комментарии

При возникновении исключения необходимо выполнить откат всех открытых транзакций. В противном случае может произойти потеря данных.

См. также раздел

Применяется к