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