SqlFileStream Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Inicializa uma nova instância da SqlFileStream classe.
Sobrecargas
| Name | Description |
|---|---|
| SqlFileStream(String, Byte[], FileAccess) |
Inicializa uma nova instância da SqlFileStream classe. |
| SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
Inicializa uma nova instância da SqlFileStream classe. |
Observações
A tabela seguinte lista as permissões de segurança de acesso ao código (CAS) que todos os chamadores na pilha devem ter para usar os SqlFileStream construtores.
| Acesso a ficheiros | Permission |
|---|---|
| Leitura | Read |
| Escreve | Write |
| LerEscrever | Read e Write |
Para mais informações sobre CAS, consulte Code Access Security e ADO.NET.
SqlFileStream(String, Byte[], FileAccess)
Inicializa uma nova instância da SqlFileStream classe.
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)
Parâmetros
- path
- String
O caminho lógico para o ficheiro. O caminho pode ser recuperado usando a função Transact-SQL Nome do Caminho na coluna FILESTREAM subjacente na tabela.
- transactionContext
- Byte[]
O contexto da transação para o SqlFileStream objeto. As aplicações devem devolver o array de bytes devolvido ao chamar o método GET_FILESTREAM_TRANSACTION_CONTEXT.
- access
- FileAccess
O modo de acesso a usar ao abrir o ficheiro. Os valores de enumeração suportados FileAccess são Read, Write, e ReadWrite.
Ao usar FileAccess.Read, o SqlFileStream objeto pode ser usado para ler todos os dados existentes.
Ao usar FileAccess.Write, SqlFileStream aponta para um ficheiro de zero bytes. Os dados existentes serão sobrescritos quando o objeto for fechado e a transação for confirmada.
Ao usar FileAccess.ReadWrite, aponta SqlFileStream para um ficheiro que contém todos os dados existentes. A pega está posicionada no início do ficheiro. Podes usar um dos System.IOSeek métodos para mover a posição do handle dentro do ficheiro para escrever ou adicionar novos dados.
Exceções
path é uma referência nula, ou transactionContext é nula.
path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.
- OU -
path começa com "\\.\", por exemplo "\\.\PHYSICALDRIVE0 ".
- OU -
O handle devolvido pela chamada para NTCreateFile não é do tipo FILE_TYPE_DISK.
O ficheiro não pode ser encontrado.
Ocorreu um erro de I/O.
O interlocutor não tem a permissão necessária.
O especificado path é inválido, como estar num disco não mapeado.
O acesso solicitado não é permitido pelo sistema operativo para o caminho especificado. Isto ocorre quando o acesso Write ou ReadWrite é especificado, e o ficheiro ou diretório é definido para acesso apenas de leitura.
O NtCreateFile falha com o código de erro definido para ERROR_SHARING_VIOLATION.
Observações
Se for lançada uma exceção, quaisquer transações em aberto devem ser revertidas. Caso contrário, pode ocorrer perda de dados.
Ver também
Aplica-se a
SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64)
Inicializa uma nova instância da SqlFileStream classe.
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)
Parâmetros
- path
- String
O caminho lógico para o ficheiro. O caminho pode ser recuperado usando a função Transact-SQL Nome do Caminho na coluna FILESTREAM subjacente na tabela.
- transactionContext
- Byte[]
O contexto da transação para o SqlFileStream objeto. Quando definido como nulo, será usada uma transação implícita para o SqlFileStream objeto. As aplicações devem devolver o array de bytes devolvido ao chamar o método GET_FILESTREAM_TRANSACTION_CONTEXT.
- access
- FileAccess
O modo de acesso a usar ao abrir o ficheiro. Os valores de enumeração suportados FileAccess são Read, Write, e ReadWrite.
Ao usar FileAccess.Read, o SqlFileStream objeto pode ser usado para ler todos os dados existentes.
Ao usar FileAccess.Write, SqlFileStream aponta para um ficheiro de zero bytes. Os dados existentes serão sobrescritos quando o objeto for fechado e a transação for confirmada.
Ao usar FileAccess.ReadWrite, aponta SqlFileStream para um ficheiro que contém todos os dados existentes. A pega está posicionada no início do ficheiro. Podes usar um dos System.IOSeek métodos para mover a posição do handle dentro do ficheiro para escrever ou adicionar novos dados.
- options
- FileOptions
Especifica a opção a usar ao abrir o ficheiro. Os valores suportados FileOptions são Asynchronous, WriteThrough, SequentialScan, e RandomAccess.
- allocationSize
- Int64
O tamanho da alocação a usar na criação de um ficheiro. Se definido para 0, é usado o valor predefinido.
Exceções
path é uma referência nula, ou transactionContext é nula.
path é uma cadeia vazia (""), contém apenas espaço em branco, ou contém um ou mais caracteres inválidos.
path começa com "\\.\", por exemplo "\\.\PHYSICALDRIVE0 ".
O handle devolvido por chamada ao NTCreateFile não é do tipo FILE_TYPE_DISK.
options contém um valor não suportado.
O ficheiro não pode ser encontrado.
Ocorreu um erro de I/O.
O interlocutor não tem a permissão necessária.
O especificado path é inválido, como estar num disco não mapeado.
O acesso solicitado não é permitido pelo sistema operativo para o caminho especificado. Isto ocorre quando o acesso Write ou ReadWrite é especificado, e o ficheiro ou diretório é definido para acesso apenas de leitura.
O NtCreateFile falha com o código de erro definido para ERROR_SHARING_VIOLATION.
Observações
Se for lançada uma exceção, quaisquer transações em aberto devem ser revertidas. Caso contrário, pode ocorrer perda de dados.