SqlFileStream Konstruktoren

Definition

Initialisiert eine neue Instanz der SqlFileStream-Klasse.Initializes a new instance of the SqlFileStream class.

Überlädt

SqlFileStream(String, Byte[], FileAccess)

Initialisiert eine neue Instanz der SqlFileStream-Klasse.Initializes a new instance of the SqlFileStream class.

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

Initialisiert eine neue Instanz der SqlFileStream-Klasse.Initializes a new instance of the SqlFileStream class.

Hinweise

In der folgenden Tabelle werden die Berechtigungen für die Code Zugriffssicherheit (Code Access Security, CAS) aufgelistet, die alle SqlFileStream Aufrufer im Stapel für die Verwendung der Konstruktoren benötigenThe following table lists the code access security (CAS) permissions that all callers in the stack must have to use the SqlFileStream constructors.

DateizugriffFile access BerechtigungPermission
LesenRead Read
WriteWrite Write
ReadWriteReadWrite Read und WriteRead and Write

Weitere Informationen zu CAS finden Sie unter Code Zugriffssicherheit und ADO.net.For more information about CAS, see Code Access Security and ADO.NET.

SqlFileStream(String, Byte[], FileAccess)

Initialisiert eine neue Instanz der SqlFileStream-Klasse.Initializes a new instance of the SqlFileStream class.

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.The logical path to the file. Der Pfad kann abgerufen werden, indem die Transact-SQL-Funktion „Pathname“ auf die zugrunde liegende FILESTREAM-Spalte in der Tabelle angewendet wird.The path can be retrieved by using the Transact-SQL Pathname function on the underlying FILESTREAM column in the table.

transactionContext
Byte[]

Der Transaktionskontext für das SqlFileStream -Objekt.The transaction context for the SqlFileStream object. Anwendungen sollten das Bytearray zurückgeben, das durch Aufrufen der GET_FILESTREAM_TRANSACTION_CONTEXT-Methode zurückgegeben wurde.Applications should return the byte array returned by calling the GET_FILESTREAM_TRANSACTION_CONTEXT method.

access
FileAccess

Der beim Öffnen der Datei zu verwendende Zugriffsmodus.The access mode to use when opening the file. Unterstützte FileAccess-Enumerationswerte sind Read, Write und ReadWrite.Supported FileAccess enumeration values are Read, Write, and ReadWrite.

Wenn FileAccess.Read verwendet wird, kann das SqlFileStream-Objekt dazu verwendet werden, alle vorhandenen Daten zu lesen.When using FileAccess.Read, the SqlFileStream object can be used to read all of the existing data.

Wenn FileAccess.Write verwendet wird, zeigt SqlFileStream auf eine Datei mit 0 (null) Bytes.When using FileAccess.Write, SqlFileStream points to a zero byte file. Vorhandene Daten werden überschrieben, wenn das Objekt geschlossen und die Transaktion committet wird.Existing data will be overwritten when the object is closed and the transaction is committed.

Wenn FileAccess.ReadWrite verwendet wird, zeigt SqlFileStream auf eine Datei, in der alle vorhandenen Daten enthalten sind.When using FileAccess.ReadWrite, the SqlFileStream points to a file which has all the existing data in it. Das Handle ist am Anfang der Datei positioniert.The handle is positioned at the beginning of the file. 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.You can use one of the System.IOSeek methods to move the handle position within the file to write or append new data.

Ausnahmen

path ist ein NULL-Verweis, oder transactionContext ist gleich NULL.path is a null reference, or transactionContext is null.

path ist eine leere Zeichenfolge (""), enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.path is an empty string (""), contains only white space, or contains one or more invalid characters.

path beginnt mit „\\.\“, z.B. „\\.\PHYSICALDRIVE0“.path begins with "\\.\", for example "\\.\PHYSICALDRIVE0 ".

Das vom NTCreateFile-Aufruf zurückgegebene Handle ist nicht vom Typ FILE_TYPE_DISK.The handle returned by the call to NTCreateFile is not of type FILE_TYPE_DISK.

options enthält einen nicht unterstützten Wert.options contains an unsupported value.

Die Datei kann nicht gefunden werden.The file cannot be found.

E/A-FehlerAn I/O error occurred.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Der angegebene path ist ungültig, z. B. befindet er sich auf einem nicht zugeordneten Laufwerk.The specified path is invalid, such as being on an unmapped drive.

Der angeforderte Zugriff wird vom Betriebssystem für den angegebenen Pfad nicht zugelassen.The access requested is not permitted by the operating system for the specified path. Dies tritt auf, wenn ein Write- oder ReadWrite-Zugriff angegeben und die Datei oder das Verzeichnis auf schreibgeschützten Zugriff festgelegt ist.This occurs when Write or ReadWrite access is specified, and the file or directory is set for read-only access.

NtCreateFile gibt den Fehlercode ERROR_SHARING_VIOLATION zurück.NtCreateFile fails with error code set to ERROR_SHARING_VIOLATION.

Hinweise

Wenn eine Ausnahme ausgelöst wird, sollte für alle geöffneten Transaktionen ein Rollback ausgeführt werden.If an exception is thrown, any open transactions should be rolled back. Andernfalls kann es zu Datenverlusten kommen.Otherwise, data loss can occur.

Siehe auch

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

Initialisiert eine neue Instanz der SqlFileStream-Klasse.Initializes a new instance of the SqlFileStream class.

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.The logical path to the file. Der Pfad kann abgerufen werden, indem die Transact-SQL-Funktion „Pathname“ auf die zugrunde liegende FILESTREAM-Spalte in der Tabelle angewendet wird.The path can be retrieved by using the Transact-SQL Pathname function on the underlying FILESTREAM column in the table.

transactionContext
Byte[]

Der Transaktionskontext für das SqlFileStream-Objekt.The transaction context for the SqlFileStream object. Ist dieser Parameter auf NULL festgelegt, wird eine implizite Transaktion für das SqlFileStream-Objekt verwendetWhen set to null, an implicit transaction will be used for the SqlFileStream object. Anwendungen sollten das Bytearray zurückgeben, das durch Aufrufen der GET_FILESTREAM_TRANSACTION_CONTEXT-Methode zurückgegeben wurde.Applications should return the byte array returned by calling the GET_FILESTREAM_TRANSACTION_CONTEXT method.

access
FileAccess

Der beim Öffnen der Datei zu verwendende Zugriffsmodus.The access mode to use when opening the file. Unterstützte FileAccess-Enumerationswerte sind Read, Write und ReadWrite.Supported FileAccess enumeration values are Read, Write, and ReadWrite.

Wenn FileAccess.Read verwendet wird, kann das SqlFileStream-Objekt dazu verwendet werden, alle vorhandenen Daten zu lesen.When using FileAccess.Read, the SqlFileStream object can be used to read all of the existing data.

Wenn FileAccess.Write verwendet wird, zeigt SqlFileStream auf eine Datei mit 0 (null) Bytes.When using FileAccess.Write, SqlFileStream points to a zero byte file. Vorhandene Daten werden überschrieben, wenn das Objekt geschlossen und die Transaktion committet wird.Existing data will be overwritten when the object is closed and the transaction is committed.

Wenn FileAccess.ReadWrite verwendet wird, zeigt SqlFileStream auf eine Datei, in der alle vorhandenen Daten enthalten sind.When using FileAccess.ReadWrite, the SqlFileStream points to a file which has all the existing data in it. Das Handle ist am Anfang der Datei positioniert.The handle is positioned at the beginning of the file. 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.You can use one of the System.IOSeek methods to move the handle position within the file to write or append new data.

options
FileOptions

Gibt die beim Öffnen der Datei zu verwendende Option an.Specifies the option to use while opening the file. Unterstützte FileOptions-Werte sind Asynchronous, WriteThrough, SequentialScan und RandomAccess.Supported FileOptions values are Asynchronous, WriteThrough, SequentialScan, and RandomAccess.

allocationSize
Int64

Die beim Erstellen einer Datei zu verwendende Zuordnungsgröße.The allocation size to use while creating a file. Ist dieser Parameter auf 0 (null) festgelegt, wird der Standardwert verwendet.If set to 0, the default value is used.

Ausnahmen

path ist ein NULL-Verweis, oder transactionContext ist gleich NULL.path is a null reference, or transactionContext is null.

path ist eine leere Zeichenfolge (""), enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.path is an empty string (""), contains only white space, or contains one or more invalid characters.

path beginnt mit „\\.\“, z.B. „\\.\PHYSICALDRIVE0“.path begins with "\\.\", for example "\\.\PHYSICALDRIVE0 ".

Das nach einem Aufruf von NTCreateFile zurückgegebene Handle hat nicht den Typ FILE_TYPE_DISK.The handle returned by call to NTCreateFile is not of type FILE_TYPE_DISK.

options enthält einen nicht unterstützten Wert.options contains an unsupported value.

Die Datei kann nicht gefunden werden.The file cannot be found.

E/A-FehlerAn I/O error occurred.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Der angegebene path ist ungültig, z. B. befindet er sich auf einem nicht zugeordneten Laufwerk.The specified path is invalid, such as being on an unmapped drive.

Der angeforderte Zugriff wird vom Betriebssystem für den angegebenen Pfad nicht zugelassen.The access requested is not permitted by the operating system for the specified path. Dies tritt auf, wenn ein Write- oder ReadWrite-Zugriff angegeben und die Datei oder das Verzeichnis auf schreibgeschützten Zugriff festgelegt ist.This occurs when Write or ReadWrite access is specified, and the file or directory is set for read-only access.

NtCreateFile gibt den Fehlercode ERROR_SHARING_VIOLATION zurück.NtCreateFile fails with error code set to ERROR_SHARING_VIOLATION.

Hinweise

Wenn eine Ausnahme ausgelöst wird, sollte für alle geöffneten Transaktionen ein Rollback ausgeführt werden.If an exception is thrown, any open transactions should be rolled back. Andernfalls kann es zu Datenverlusten kommen.Otherwise, data loss can occur.

Siehe auch

Gilt für: