SqlFileStream Costruttori

Definizione

Inizializza una nuova istanza della classe SqlFileStream.

Overload

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 di accesso al codice che tutti i chiamanti nello stack devono usare i SqlFileStream costruttori.

Accesso ai file Autorizzazione
Lettura Read
Scrittura Write
ReadWrite Read e Write

Per altre informazioni su CAS, vedere Sicurezza di accesso al codice e 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 Transact-SQL Pathname o la colonna FILESTREAM sottostante nella tabella.

transactionContext
Byte[]

Contesto di transazione per l'oggetto SqlFileStream. Le applicazioni devono restituire la matrice di byte restituita dalla chiamata del metodo GET_FILESTREAM_TRANSACTION_CONTEXT.

access
FileAccess

Modalità di accesso usata per l'apertura del file. I valori dell'enumerazione FileAccess supportati sono Read, Write e 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 zero byte. I dati esistenti verranno sovrascritti quando l'oggetto viene chiuso e viene eseguito il commit della transazione.

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

Eccezioni

path è un riferimento Null oppure transactionContext è Null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure 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 path specificato non è valido, ad esempio si trova in un'unità non mappata.

L'accesso richiesto non è consentito dal sistema operativo per il percorso specificato. Questo problema si verifica quando è specificato l'accesso Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.

NtCreateFile non riesce con 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 Transact-SQL Pathname o la colonna FILESTREAM sottostante nella tabella.

transactionContext
Byte[]

Contesto di transazione per l'oggetto SqlFileStream. Se impostato su null, per l'oggetto SqlFileStream verrà usata una transazione implicita. Le applicazioni devono restituire la matrice di byte restituita dalla chiamata del metodo GET_FILESTREAM_TRANSACTION_CONTEXT.

access
FileAccess

Modalità di accesso usata per l'apertura del file. I valori dell'enumerazione FileAccess supportati sono Read, Write e 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 zero byte. I dati esistenti verranno sovrascritti quando l'oggetto viene chiuso e viene eseguito il commit della transazione.

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

options
FileOptions

Specifica l'opzione da usare durante l'apertura del file. I valori di FileOptions supportati sono Asynchronous, WriteThrough, SequentialScan e 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 oppure transactionContext è Null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure 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 path specificato non è valido, ad esempio si trova in un'unità non mappata.

L'accesso richiesto non è consentito dal sistema operativo per il percorso specificato. Questo problema si verifica quando è specificato l'accesso Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.

NtCreateFile non riesce con 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