SqlFileStream Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет данные сервера SQL Server, сохраненные с помощью атрибута столбца FILESTREAM, как последовательность байтов.
public ref class SqlFileStream sealed : System::IO::Stream
public sealed class SqlFileStream : System.IO.Stream
type SqlFileStream = class
inherit Stream
Public NotInheritable Class SqlFileStream
Inherits Stream
- Наследование
Комментарии
Класс SqlFileStream используется для работы с varbinary(max)
данными, хранящимися с атрибутом FILESTREAM в базе данных SQL Server 2008. Для работы с данными FILESTREAM необходимо установить платформа .NET Framework 3.5 с пакетом SqlFileStream обновления 1 (SP1) (или более поздней версии).
Указание атрибута FILESTREAM в столбце varbinary(max)
приводит к тому, что SQL Server будет хранить данные в локальной файловой системе NTFS, а не в файле базы данных. Инструкции Transact-SQL предоставляют возможности обработки данных на сервере, а интерфейсы файловой системы Win32 предоставляют потоковый доступ к данным.
Примечание
Отдельные файлы, хранящиеся в столбце FILESTREAM, невозможно открыть непосредственно из файловой системы NTFS. Потоковая передача данных FILESTREAM работает только в контексте транзакции SQL Server.
Класс SqlFileStream является производным Stream от класса , который представляет абстракцию последовательности байтов из некоторых произвольных источников данных, таких как файл или блок памяти. Вы можете считывать данные из FILESTREAM, передав данные из потока в структуру данных, например массив байтов. Вы можете выполнить запись в FILESTREAM, передав данные из структуры данных в поток. Вы также можете искать в потоке, что позволяет запрашивать и изменять данные в текущей позиции в потоке.
Концептуальную документацию и примеры кода см. в разделе FileSTREAM Data.
Документацию по настройке и настройке данных FILESTREAM в SQL Server см. в статье Проектирование и реализация хранилища FILESTREAM в электронной документации по SQL Server 2008 г.
Конструкторы
SqlFileStream(String, Byte[], FileAccess) |
Инициализирует новый экземпляр класса SqlFileStream. |
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
Инициализирует новый экземпляр класса SqlFileStream. |
Свойства
CanRead |
Возвращает значение, определяющее в текущем потоке наличие поддержки операций чтения. |
CanSeek |
Возвращает значение, определяющее в текущем потоке наличие поддержки операций поиска. |
CanTimeout |
Возвращает значение, определяющее, может ли для текущего потока истечь время ожидания. |
CanWrite |
Возвращает значение, определяющее в текущем потоке наличие поддержки операций записи. |
Length |
Возвращает значение, указывающее длину текущего потока в байтах. |
Name |
Возвращает логический путь SqlFileStream, переданного в конструктор. |
Position |
Получает или задает позицию в текущем потоке. |
ReadTimeout |
Возвращает или задает значение в миллисекундах, определяющее период времени, отведенного потоку на выполнение операции чтения. |
TransactionContext |
Возвращает или задает контекст транзакции для данного объекта SqlFileStream. |
WriteTimeout |
Возвращает или задает значение в миллисекундах, определяющее период времени, отведенного потоку на выполнение операции записи. |
Методы
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает операцию асинхронного чтения. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Начинает операцию асинхронной записи. |
Close() |
Закрывает текущий поток и отключает все ресурсы (например, сокеты и файловые дескрипторы), связанные с текущим потоком. Вместо вызова данного метода, убедитесь в том, что поток надлежащим образом ликвидирован. (Унаследовано от Stream) |
CopyTo(Stream) |
Считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков перемещаются по количеству скопированных байтов. (Унаследовано от Stream) |
CopyTo(Stream, Int32) |
Считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков перемещаются по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток. Обе позиции потоков перемещаются по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream, CancellationToken) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный токен отмены. Обе позиции потоков перемещаются по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream, Int32) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера. Обе позиции потоков перемещаются по количеству скопированных байтов. (Унаследовано от Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Асинхронно считывает байты из текущего потока и записывает их в другой поток, используя указанный размер буфера и токен отмены. Обе позиции потоков перемещаются по количеству скопированных байтов. (Унаследовано от Stream) |
CreateObjRef(Type) |
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
CreateWaitHandle() |
Устаревшие..
Устаревшие..
Устаревшие..
Выделяет объект WaitHandle. (Унаследовано от Stream) |
Dispose() |
Освобождает все ресурсы, занятые модулем Stream. (Унаследовано от Stream) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые объектом Stream, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от Stream) |
DisposeAsync() |
Асинхронно освобождает неуправляемые ресурсы, используемые классом Stream. (Унаследовано от Stream) |
EndRead(IAsyncResult) |
Ожидает завершения отложенного асинхронного чтения. |
EndWrite(IAsyncResult) |
Заканчивает операцию асинхронной записи. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Finalize() |
Гарантирует, что ресурсы освобождены и выполнены другие операции очистки, когда сборщик мусора восстанавливает SqlFileStream. |
Flush() |
Очищает все буферы для этого потока и приводит к записи всех буферизованных данных в базовое устройство. |
FlushAsync() |
Асинхронно очищает все буферы для этого потока и вызывает запись всех буферизованных данных в базовое устройство. (Унаследовано от Stream) |
FlushAsync(CancellationToken) |
Асинхронно очищает все буферы данного потока, вызывает запись буферизованных данных в базовое устройство и отслеживает запросы отмены. (Унаследовано от Stream) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetLifetimeService() |
Устаревшие..
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
MemberwiseClone(Boolean) |
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
ObjectInvariant() |
Устаревшие..
Обеспечивает поддержку для Contract. (Унаследовано от Stream) |
Read(Byte[], Int32, Int32) |
Считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов. |
Read(Span<Byte>) |
При переопределении в производном классе считывает последовательность байтов из текущего потока и перемещает позицию в потоке на число считанных байтов. (Унаследовано от Stream) |
ReadAsync(Byte[], Int32, Int32) |
Асинхронно считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов. (Унаследовано от Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Считывает по крайней мере минимальное количество байтов из текущего потока и перемещает позицию в потоке на число прочитанных байтов. (Унаследовано от Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Асинхронно считывает по крайней мере минимальное количество байтов из текущего потока, перемещает позицию в потоке на число прочитанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
ReadByte() |
Считывает байт из потока и перемещает позицию в потоке на один байт или возвращает -1, если достигнут конец потока. |
ReadExactly(Byte[], Int32, Int32) |
Считывает |
ReadExactly(Span<Byte>) |
Считывает байты из текущего потока и перемещает позицию в потоке |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает байты из текущего потока, перемещает позицию в потоке |
Seek(Int64, SeekOrigin) |
Задает позицию в текущем потоке. |
SetLength(Int64) |
Устанавливает длину текущего потока. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Write(Byte[], Int32, Int32) |
Записывает последовательность байтов в текущий поток и перемещает текущую позицию внутри потока на число записанных байтов. |
Write(ReadOnlySpan<Byte>) |
При переопределении в производном классе записывает последовательность байтов в текущий поток и перемещает текущую позицию в нем вперед на число записанных байтов. (Унаследовано от Stream) |
WriteAsync(Byte[], Int32, Int32) |
Асинхронно записывает последовательность байтов в текущий поток и перемещает текущую позицию внутри потока на число записанных байтов. (Унаследовано от Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию внутри потока на число записанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Асинхронно записывает последовательность байтов в текущий поток, перемещает текущую позицию внутри потока на число записанных байтов и отслеживает запросы отмены. (Унаследовано от Stream) |
WriteByte(Byte) |
Записывает байт в текущее положение в потоке и перемещает позицию в потоке вперед на один байт. |
Методы расширения
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Асинхронно считывает байты из Stream и записывает их в указанный PipeWriter, используя токен отмены. |