SqlFileStream Costruttori

Definizione

Inizializza una nuova istanza della classe SqlFileStream.

Overload

Nome Descrizione
SqlFileStream(String, Byte[], FileAccess)

Inizializza una nuova istanza della classe SqlFileStream.

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

Inizializza una nuova istanza della classe SqlFileStream.

Commenti

Nella tabella seguente sono elencate le autorizzazioni di sicurezza dall'accesso di codice (CAS) che tutti i chiamanti nello stack devono usare i SqlFileStream costruttori.

Accesso ai file Permission
Leggi Read
Scrittura Write
LeggiScrivi Read e Write

Per altre informazioni su CAS, vedere Code Access Security and ADO.NET.

SqlFileStream(String, Byte[], FileAccess)

Inizializza una nuova istanza della classe 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)

Parametri

path
String

Percorso logico del file. Il percorso può essere recuperato usando la funzione pathname Transact-SQL nella colonna FILESTREAM sottostante della tabella.

transactionContext
Byte[]

Contesto della transazione per l'oggetto SqlFileStream . Le applicazioni devono restituire la matrice di byte restituita chiamando il metodo GET_FILESTREAM_TRANSACTION_CONTEXT.

access
FileAccess

Modalità di accesso da utilizzare quando si apre il file. I valori di enumerazione supportati FileAccess sono Read, Writee ReadWrite.

Quando si usa FileAccess.Read, l'oggetto SqlFileStream può essere usato per leggere tutti i dati esistenti.

Quando si usa FileAccess.Write, SqlFileStream punta a un file di byte zero. I dati esistenti verranno sovrascritti quando l'oggetto viene chiuso e viene eseguito il commit della transazione.

Quando si usa FileAccess.ReadWrite, punta SqlFileStream a un file che contiene tutti i dati esistenti. L'handle viene posizionato all'inizio del file. È possibile utilizzare uno dei System.IOSeek metodi per spostare la posizione dell'handle all'interno del file per scrivere o aggiungere nuovi dati.

Eccezioni

path è un riferimento Null o transactionContext è Null.

path è una stringa vuota (""), contiene solo spazi vuoti o contiene uno o più caratteri non validi.

-OPPURE-

path inizia con "\\.\", ad esempio "\\.\PHYSICALDRIVE0 ".

-OPPURE-

L'handle restituito dalla chiamata a NTCreateFile non è di tipo FILE_TYPE_DISK.

Impossibile trovare il file.

Si è verificato un errore di I/O.

Il chiamante non dispone dell'autorizzazione richiesta.

L'oggetto specificato path non è valido, ad esempio in un'unità non mappata.

L'accesso richiesto non è consentito dal sistema operativo per il percorso specificato. Ciò si verifica quando viene specificato l'accesso write o ReadWrite e il file o la directory è impostata per l'accesso in sola lettura.

NtCreateFile ha esito negativo e il codice di errore è impostato su ERROR_SHARING_VIOLATION.

Commenti

Se viene generata un'eccezione, è necessario eseguire il rollback di tutte le transazioni aperte. In caso contrario, la perdita di dati può verificarsi.

Vedi anche

Si applica a

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

Inizializza una nuova istanza della classe 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)

Parametri

path
String

Percorso logico del file. Il percorso può essere recuperato usando la funzione pathname Transact-SQL nella colonna FILESTREAM sottostante della tabella.

transactionContext
Byte[]

Contesto della transazione per l'oggetto SqlFileStream . Se impostato su Null, verrà usata una transazione implicita per l'oggetto SqlFileStream . Le applicazioni devono restituire la matrice di byte restituita chiamando il metodo GET_FILESTREAM_TRANSACTION_CONTEXT.

access
FileAccess

Modalità di accesso da utilizzare quando si apre il file. I valori di enumerazione supportati FileAccess sono Read, Writee ReadWrite.

Quando si usa FileAccess.Read, l'oggetto SqlFileStream può essere usato per leggere tutti i dati esistenti.

Quando si usa FileAccess.Write, SqlFileStream punta a un file di byte zero. I dati esistenti verranno sovrascritti quando l'oggetto viene chiuso e viene eseguito il commit della transazione.

Quando si usa FileAccess.ReadWrite, punta SqlFileStream a un file che contiene tutti i dati esistenti. L'handle viene posizionato all'inizio del file. È possibile utilizzare uno dei System.IOSeek metodi per spostare la posizione dell'handle all'interno del file per scrivere o aggiungere nuovi dati.

options
FileOptions

Specifica l'opzione da utilizzare durante l'apertura del file. I valori supportati FileOptions sono Asynchronous, WriteThrough, SequentialScane RandomAccess.

allocationSize
Int64

Dimensioni di allocazione da usare durante la creazione di un file. Se impostato su 0, viene usato il valore predefinito.

Eccezioni

path è un riferimento Null o transactionContext è Null.

path è una stringa vuota (""), contiene solo spazi vuoti o contiene uno o più caratteri non validi.

path inizia con "\\.\", ad esempio "\\.\PHYSICALDRIVE0 ".

L'handle restituito dalla chiamata a NTCreateFile non è di tipo FILE_TYPE_DISK.

options contiene un valore non supportato.

Impossibile trovare il file.

Si è verificato un errore di I/O.

Il chiamante non dispone dell'autorizzazione richiesta.

L'oggetto specificato path non è valido, ad esempio in un'unità non mappata.

L'accesso richiesto non è consentito dal sistema operativo per il percorso specificato. Ciò si verifica quando viene specificato l'accesso write o ReadWrite e il file o la directory è impostata per l'accesso in sola lettura.

NtCreateFile ha esito negativo e il codice di errore è impostato su ERROR_SHARING_VIOLATION.

Commenti

Se viene generata un'eccezione, è necessario eseguire il rollback di tutte le transazioni aperte. In caso contrario, la perdita di dati può verificarsi.

Vedi anche

Si applica a