SqlFileStream Konstruktoren

Definition

Initialisiert eine neue Instanz der SqlFileStream-Klasse.

Überlädt

SqlFileStream(String, Byte[], FileAccess)

Initialisiert eine neue Instanz der SqlFileStream-Klasse.

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

Initialisiert eine neue Instanz der SqlFileStream-Klasse.

Hinweise

In der folgenden Tabelle sind die Cas-Berechtigungen (Code Access Security) aufgeführt, die alle Aufrufer im Stapel benötigen, um die SqlFileStream Konstruktoren verwenden zu können.

Dateizugriff Berechtigung
Lesen Read
Schreiben Write
ReadWrite Read und Write

Weitere Informationen zu CAS finden Sie unter Codezugriffssicherheit und ADO.NET.

SqlFileStream(String, Byte[], FileAccess)

Initialisiert eine neue Instanz der SqlFileStream-Klasse.

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)

Parameter

path
String

Der logische Pfad zur Datei. Der Pfad kann abgerufen werden, indem die Transact-SQL-Funktion „Pathname“ auf die zugrunde liegende FILESTREAM-Spalte in der Tabelle angewendet wird.

transactionContext
Byte[]

Der Transaktionskontext für das SqlFileStream-Objekt. Anwendungen sollten das Bytearray zurückgeben, das durch Aufrufen der GET_FILESTREAM_TRANSACTION_CONTEXT-Methode zurückgegeben wurde.

access
FileAccess

Der beim Öffnen der Datei zu verwendende Zugriffsmodus. Unterstützte FileAccess-Enumerationswerte sind Read, Write und ReadWrite.

Wenn FileAccess.Read verwendet wird, kann das SqlFileStream-Objekt dazu verwendet werden, alle vorhandenen Daten zu lesen.

Wenn FileAccess.Write verwendet wird, zeigt SqlFileStream auf eine Datei mit 0 (null) Bytes. Vorhandene Daten werden überschrieben, wenn das Objekt geschlossen und die Transaktion committet wird.

Wenn FileAccess.ReadWrite verwendet wird, zeigt SqlFileStream auf eine Datei, in der alle vorhandenen Daten enthalten sind. Das Handle ist am Anfang der Datei positioniert. Sie können die Position des Handles in der Datei mit einer der System.IOSeek-Methoden verschieben, um neue Daten zu schreiben oder anzufügen.

Ausnahmen

path ist ein NULL-Verweis, oder transactionContext ist gleich NULL.

path ist eine leere Zeichenfolge (""), enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.

path beginnt mit "\\.\", z. B. "\\.\PHYSICALDRIVE0".

Das nach dem Aufruf von NTCreateFile zurückgegebene Handle hat nicht den Typ FILE_TYPE_DISK.

options enthält einen nicht unterstützten Wert.

Die Datei kann nicht gefunden werden.

E/A-Fehler

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Der angegebene path ist ungültig, z. B. befindet er sich auf einem nicht zugeordneten Laufwerk.

Der angeforderte Zugriff wird vom Betriebssystem für den angegebenen Pfad nicht zugelassen. Dies tritt auf, wenn ein Write- oder ReadWrite-Zugriff angegeben und die Datei oder das Verzeichnis auf schreibgeschützten Zugriff festgelegt ist.

NtCreateFile gibt den Fehlercode ERROR_SHARING_VIOLATION zurück.

Hinweise

Wenn eine Ausnahme ausgelöst wird, sollte ein Rollback für alle geöffneten Transaktionen ausgeführt werden. Andernfalls kann es zu Datenverlust kommen.

Weitere Informationen

Gilt für:

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

Initialisiert eine neue Instanz der SqlFileStream-Klasse.

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)

Parameter

path
String

Der logische Pfad zur Datei. Der Pfad kann abgerufen werden, indem die Transact-SQL-Funktion „Pathname“ auf die zugrunde liegende FILESTREAM-Spalte in der Tabelle angewendet wird.

transactionContext
Byte[]

Der Transaktionskontext für das SqlFileStream-Objekt. Ist dieser Parameter auf NULL festgelegt, wird eine implizite Transaktion für das SqlFileStream-Objekt verwendet Anwendungen sollten das Bytearray zurückgeben, das durch Aufrufen der GET_FILESTREAM_TRANSACTION_CONTEXT-Methode zurückgegeben wurde.

access
FileAccess

Der beim Öffnen der Datei zu verwendende Zugriffsmodus. Unterstützte FileAccess-Enumerationswerte sind Read, Write und ReadWrite.

Wenn FileAccess.Read verwendet wird, kann das SqlFileStream-Objekt dazu verwendet werden, alle vorhandenen Daten zu lesen.

Wenn FileAccess.Write verwendet wird, zeigt SqlFileStream auf eine Datei mit 0 (null) Bytes. Vorhandene Daten werden überschrieben, wenn das Objekt geschlossen und die Transaktion committet wird.

Wenn FileAccess.ReadWrite verwendet wird, zeigt SqlFileStream auf eine Datei, in der alle vorhandenen Daten enthalten sind. Das Handle ist am Anfang der Datei positioniert. Sie können die Position des Handles in der Datei mit einer der System.IOSeek-Methoden verschieben, um neue Daten zu schreiben oder anzufügen.

options
FileOptions

Gibt die beim Öffnen der Datei zu verwendende Option an. Unterstützte FileOptions-Werte sind Asynchronous, WriteThrough, SequentialScan und RandomAccess.

allocationSize
Int64

Die beim Erstellen einer Datei zu verwendende Zuordnungsgröße. Ist dieser Parameter auf 0 (null) festgelegt, wird der Standardwert verwendet.

Ausnahmen

path ist ein NULL-Verweis, oder transactionContext ist gleich NULL.

path ist eine leere Zeichenfolge (""), enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.

path beginnt mit "\\.\", z. B. "\\.\PHYSICALDRIVE0".

Das nach einem Aufruf von NTCreateFile zurückgegebene Handle hat nicht den Typ FILE_TYPE_DISK.

options enthält einen nicht unterstützten Wert.

Die Datei kann nicht gefunden werden.

E/A-Fehler

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Der angegebene path ist ungültig, z. B. befindet er sich auf einem nicht zugeordneten Laufwerk.

Der angeforderte Zugriff wird vom Betriebssystem für den angegebenen Pfad nicht zugelassen. Dies tritt auf, wenn ein Write- oder ReadWrite-Zugriff angegeben und die Datei oder das Verzeichnis auf schreibgeschützten Zugriff festgelegt ist.

NtCreateFile gibt den Fehlercode ERROR_SHARING_VIOLATION zurück.

Hinweise

Wenn eine Ausnahme ausgelöst wird, sollte ein Rollback für alle geöffneten Transaktionen ausgeführt werden. Andernfalls kann es zu Datenverlust kommen.

Weitere Informationen

Gilt für: