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

Комментарии

Класс 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)

Начинает операцию асинхронной записи.

EndRead(IAsyncResult)

Ожидает завершения отложенного асинхронного чтения.

EndWrite(IAsyncResult)

Заканчивает операцию асинхронной записи.

Finalize()

Деструктор объекта класса SqlFileStream.

Flush()

Очищает все буферы для этого потока и приводит к записи всех буферизованных данных в базовое устройство.

Read(Byte[], Int32, Int32)

Считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов.

ReadByte()

Считывает байт из потока и перемещает позицию в потоке на один байт или возвращает -1, если достигнут конец потока.

Seek(Int64, SeekOrigin)

Задает позицию в текущем потоке.

SetLength(Int64)

Устанавливает длину текущего потока.

Write(Byte[], Int32, Int32)

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

WriteByte(Byte)

Записывает байт в текущее положение в потоке и перемещает позицию в потоке вперед на один байт.

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

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