SqlFileStream Constructores

Definición

Inicializa una nueva instancia de la clase SqlFileStream.

Sobrecargas

SqlFileStream(String, Byte[], FileAccess)

Inicializa una nueva instancia de la clase SqlFileStream.

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

Inicializa una nueva instancia de la clase SqlFileStream.

Comentarios

En la tabla siguiente se enumeran los permisos de seguridad de acceso de código (CAS) que todos los autores de llamadas de la pila deben tener para usar los SqlFileStream constructores.

Acceso a archivos Permiso
Lectura Read
Escritura Write
ReadWrite Read y Write

Para obtener más información sobre CAS, consulte Seguridad de acceso de código y ADO.NET.

SqlFileStream(String, Byte[], FileAccess)

Inicializa una nueva instancia de la clase 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)

Parámetros

path
String

Ruta de acceso lógica al archivo. La ruta de acceso se puede recuperar mediante la función Pathname de Transact-SQL en la columna FILESTREAM subyacente de la tabla.

transactionContext
Byte[]

El contexto de transacción para el objeto SqlFileStream. Las aplicaciones deben devolver la matriz de bytes devuelta llamando al método GET_FILESTREAM_TRANSACTION_CONTEXT.

access
FileAccess

El modo de acceso que se usará al abrir el archivo. Los valores de enumeración FileAccess admitidos son Read, Write y ReadWrite.

Al usar FileAccess.Read, el objeto SqlFileStream puede usarse para leer todos los datos existentes.

Al usar FileAccess.Write, SqlFileStream apunta a un archivo de cero bytes. Los datos existentes se sobrescribirán cuando se cierre el objeto y la transacción se confirmará.

Al usar FileAccess.ReadWrite, SqlFileStream apunta a un archivo que tiene todos los datos existentes en él. El identificador se coloca al principio del archivo. Puede usar uno de los métodos System.IOSeek para mover la posición del identificador dentro del archivo para escribir o anexar nuevos datos.

Excepciones

path es una referencia null o transactionContext es null.

path es una cadena vacía (""), solo contiene espacios en blanco o uno o más caracteres no válidos.

path comienza por "\\.\", por ejemplo "\\.\PHYSICALDRIVE0 ".

El identificador devuelto por la llamada a NTCreateFile no es del tipo FILE_TYPE_DISK.

options contiene un valor no admitido.

No se encuentra el archivo.

Error de E/S.

El llamador no dispone del permiso requerido.

El valor de path especificado no es válido, por ejemplo, está en una unidad no asignada.

El sistema operativo no permite el acceso solicitado para la ruta de acceso especificada. Esto ocurre cuando se especifica el acceso de escritura o lectura y escritura, y el archivo o el directorio está establecido para el acceso de solo lectura.

Se produce un error en NtCreateFile con el código de error establecido en ERROR_SHARING_VIOLATION.

Comentarios

Si se produce una excepción, se deben revertir las transacciones abiertas. De lo contrario, se puede producir una pérdida de datos.

Consulte también

Se aplica a

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

Inicializa una nueva instancia de la clase 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)

Parámetros

path
String

Ruta de acceso lógica al archivo. La ruta de acceso se puede recuperar mediante la función Pathname de Transact-SQL en la columna FILESTREAM subyacente de la tabla.

transactionContext
Byte[]

El contexto de transacción para el objeto SqlFileStream. Cuando establece en null, se usará una transacción implícita para el objeto SqlFileStream. Las aplicaciones deben devolver la matriz de bytes devuelta llamando al método GET_FILESTREAM_TRANSACTION_CONTEXT.

access
FileAccess

El modo de acceso que se usará al abrir el archivo. Los valores de enumeración FileAccess admitidos son Read, Write y ReadWrite.

Al usar FileAccess.Read, el objeto SqlFileStream puede usarse para leer todos los datos existentes.

Al usar FileAccess.Write, SqlFileStream apunta a un archivo de cero bytes. Los datos existentes se sobrescribirán cuando se cierre el objeto y la transacción se confirmará.

Al usar FileAccess.ReadWrite, SqlFileStream apunta a un archivo que tiene todos los datos existentes en él. El identificador se coloca al principio del archivo. Puede usar uno de los métodos System.IOSeek para mover la posición del identificador dentro del archivo para escribir o anexar nuevos datos.

options
FileOptions

Especifica la opción que se usará al abrir el archivo. Los valores de FileOptions admitidos son Asynchronous, WriteThrough, SequentialScan y RandomAccess.

allocationSize
Int64

El tamaño de asignación que se usará al crear un archivo. Si se establece en 0, se usará el valor predeterminado.

Excepciones

path es una referencia null o transactionContext es null.

path es una cadena vacía (""), solo contiene espacios en blanco o uno o más caracteres no válidos.

path comienza por "\\.\", por ejemplo "\\.\PHYSICALDRIVE0 ".

El identificador devuelto por la llamada a NTCreateFile no es del tipo FILE_TYPE_DISK.

options contiene un valor no admitido.

No se encuentra el archivo.

Error de E/S.

El llamador no dispone del permiso requerido.

El valor de path especificado no es válido, por ejemplo, está en una unidad no asignada.

El sistema operativo no permite el acceso solicitado para la ruta de acceso especificada. Esto ocurre cuando se especifica el acceso de escritura o lectura y escritura, y el archivo o el directorio está establecido para el acceso de solo lectura.

Se produce un error en NtCreateFile con el código de error establecido en ERROR_SHARING_VIOLATION.

Comentarios

Si se produce una excepción, se deben revertir las transacciones abiertas. De lo contrario, se puede producir una pérdida de datos.

Consulte también

Se aplica a