Compartilhar via


SqlFileStream Classe

Definição

Expõe dados do SQL Server que são armazenados com o atributo de coluna FILESTREAM como uma sequência de bytes.

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
Herança
SqlFileStream

Comentários

A SqlFileStream classe é usada para trabalhar com varbinary(max) dados armazenados com o atributo FILESTREAM em um banco de dados SQL Server 2008. Você deve instalar o .NET Framework 3.5 SP1 (ou posterior) a ser usado SqlFileStream para trabalhar com dados FILESTREAM.

Especificar o atributo FILESTREAM em uma varbinary(max) coluna faz com que SQL Server armazene os dados no sistema de arquivos NTFS local em vez de no arquivo de banco de dados. As instruções Transact-SQL fornecem recursos de manipulação de dados no servidor, e as interfaces do sistema de arquivos Win32 fornecem acesso de streaming aos dados.

Observação

Arquivos individuais armazenados em uma coluna FILESTREAM não podem ser abertos diretamente do sistema de arquivos NTFS. O streaming de dados FILESTREAM funciona apenas no contexto de uma transação de SQL Server.

A SqlFileStream classe é derivada da Stream classe , que representa uma abstração de uma sequência de bytes de alguma fonte de dados arbitrária, como um arquivo ou um bloco de memória. Você pode ler de um FILESTREAM transferindo dados de um fluxo para uma estrutura de dados, como uma matriz de bytes. Você pode gravar em um FILESTREAM transferindo os dados de uma estrutura de dados para um fluxo. Você também pode buscar dentro do fluxo, o que permite consultar e modificar dados na posição atual dentro do fluxo.

Para obter exemplos conceituais de documentação e código, consulte Dados FILESTREAM.

Para obter a documentação sobre como configurar e configurar dados FILESTREAM em SQL Server, consulte Projetando e implementando o armazenamento FILESTREAM nos Manuais Online do SQL Server 2008.

Construtores

SqlFileStream(String, Byte[], FileAccess)

Inicializa uma nova instância da classe SqlFileStream.

SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64)

Inicializa uma nova instância da classe SqlFileStream.

Propriedades

CanRead

Obtém um valor que indica se o fluxo atual dá suporte à leitura.

CanSeek

Obtém um valor que indica se o fluxo atual dá suporte à busca.

CanTimeout

Obtém um valor que indica se o fluxo atual pode atingir o tempo limite.

CanWrite

Obtém um valor que indica se o fluxo atual dá suporte à gravação.

Length

Obtém um valor que indica o comprimento do fluxo atual em bytes.

Name

Obtém o caminho lógico do SqlFileStream transmitido ao construtor.

Position

Obtém ou define a posição no fluxo atual.

ReadTimeout

Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará realizar a leitura antes do tempo limite.

TransactionContext

Obtém ou define o contexto de transação para este objeto SqlFileStream.

WriteTimeout

Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará realizar a gravação antes do tempo limite.

Métodos

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Inicia uma operação de leitura assíncrona.

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Inicia uma operação de gravação assíncrona.

EndRead(IAsyncResult)

Espera a leitura assíncrona pendente ser concluída.

EndWrite(IAsyncResult)

Encerra uma operação de gravação assíncrona.

Finalize()

Destruidor do objeto da classe SqlFileStream.

Flush()

Limpa todos os buffers nesse fluxo e faz com que os dados armazenados em buffer sejam gravados no dispositivo subjacente.

Read(Byte[], Int32, Int32)

Lê uma sequência de bytes do fluxo atual e avança a posição no fluxo até o número de bytes lidos.

ReadByte()

Lê um byte do fluxo e avança a posição no fluxo em um byte ou retorna -1 caso esteja no final do fluxo.

Seek(Int64, SeekOrigin)

Define a posição no fluxo atual.

SetLength(Int64)

Define o comprimento do fluxo atual.

Write(Byte[], Int32, Int32)

Grava uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes gravados.

WriteByte(Byte)

Grava um byte na posição atual no fluxo e avança a posição dentro no fluxo em um byte.

Aplica-se a

Confira também