SqlFileStream 생성자

정의

SqlFileStream 클래스의 새 인스턴스를 초기화합니다.

오버로드

Name Description
SqlFileStream(String, Byte[], FileAccess)

SqlFileStream 클래스의 새 인스턴스를 초기화합니다.

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

SqlFileStream 클래스의 새 인스턴스를 초기화합니다.

설명

다음 표에서는 스택의 모든 호출자가 생성자를 사용해야 SqlFileStream 하는 CAS(코드 액세스 보안) 권한을 나열합니다.

파일 액세스 허가
Read Read
작성하다 Write
읽기쓰기 ReadWrite

CAS에 대한 자세한 내용은 Access Security 및 ADO 코드.NET 참조하세요.

SqlFileStream(String, Byte[], FileAccess)

Source:
System.Data.SqlClient.notsupported.cs

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)

매개 변수

path
String

파일에 대한 논리적 경로입니다. 테이블의 기본 FILESTREAM 열에서 Transact-SQL Pathname 함수를 사용하여 경로를 검색할 수 있습니다.

transactionContext
Byte[]

개체의 트랜잭션 컨텍스트입니다 SqlFileStream . 애플리케이션은 GET_FILESTREAM_TRANSACTION_CONTEXT 메서드를 호출하여 반환된 바이트 배열을 반환해야 합니다.

access
FileAccess

파일을 열 때 사용할 액세스 모드입니다. 지원되는 FileAccess 열거형 값은 Read, WriteReadWrite.

사용할 FileAccess.Read때 개체를 SqlFileStream 사용하여 모든 기존 데이터를 읽을 수 있습니다.

사용하는 FileAccess.WriteSqlFileStream 경우 0 바이트 파일을 가리킵니다. 개체가 닫히고 트랜잭션이 커밋되면 기존 데이터를 덮어씁니다.

사용할 FileAccess.ReadWrite때는 SqlFileStream 모든 기존 데이터가 있는 파일을 가리킵니다. 핸들은 파일의 시작 부분에 배치됩니다. 메서드 중 System.IOSeek 하나를 사용하여 파일 내에서 핸들 위치를 이동하여 새 데이터를 쓰거나 추가할 수 있습니다.

예외

path 은 null 참조이거나 transactionContext null입니다.

path 은 빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.

-또는-

path 는 "\\.\"로 시작합니다(예: "\\.\PHYSICALDRIVE0 ").

-또는-

NTCreateFile 호출에서 반환된 핸들은 FILE_TYPE_DISK 형식이 아닙니다.

파일을 찾을 수 없습니다.

I/O 오류가 발생했습니다.

호출자에게 필요한 권한이 없습니다.

지정된 드라이브가 잘못되었습니다 path (예: 매핑되지 않은 드라이브에 있는 경우).

지정된 경로에 대해 운영 체제에서 요청한 액세스가 허용되지 않습니다. 이 문제는 쓰기 또는 ReadWrite 액세스가 지정되고 파일 또는 디렉터리가 읽기 전용 액세스로 설정된 경우에 발생합니다.

오류 코드가 ERROR_SHARING_VIOLATION 설정하여 NtCreateFile이 실패합니다.

설명

예외가 throw되면 열려 있는 트랜잭션을 롤백해야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.

추가 정보

적용 대상

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

Source:
System.Data.SqlClient.notsupported.cs

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)

매개 변수

path
String

파일에 대한 논리적 경로입니다. 테이블의 기본 FILESTREAM 열에서 Transact-SQL Pathname 함수를 사용하여 경로를 검색할 수 있습니다.

transactionContext
Byte[]

개체의 트랜잭션 컨텍스트입니다 SqlFileStream . null로 설정하면 개체에 암시적 트랜잭션이 SqlFileStream 사용됩니다. 애플리케이션은 GET_FILESTREAM_TRANSACTION_CONTEXT 메서드를 호출하여 반환된 바이트 배열을 반환해야 합니다.

access
FileAccess

파일을 열 때 사용할 액세스 모드입니다. 지원되는 FileAccess 열거형 값은 Read, WriteReadWrite.

사용할 FileAccess.Read때 개체를 SqlFileStream 사용하여 모든 기존 데이터를 읽을 수 있습니다.

사용하는 FileAccess.WriteSqlFileStream 경우 0 바이트 파일을 가리킵니다. 개체가 닫히고 트랜잭션이 커밋되면 기존 데이터를 덮어씁니다.

사용할 FileAccess.ReadWrite때는 SqlFileStream 모든 기존 데이터가 있는 파일을 가리킵니다. 핸들은 파일의 시작 부분에 배치됩니다. 메서드 중 System.IOSeek 하나를 사용하여 파일 내에서 핸들 위치를 이동하여 새 데이터를 쓰거나 추가할 수 있습니다.

options
FileOptions

파일을 여는 동안 사용할 옵션을 지정합니다. 지원되는 FileOptions 값은 Asynchronous, WriteThroughSequentialScanRandomAccess.

allocationSize
Int64

파일을 만드는 동안 사용할 할당 크기입니다. 0으로 설정하면 기본값이 사용됩니다.

예외

path 은 null 참조이거나 transactionContext null입니다.

path 은 빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.

path 는 "\\.\"로 시작합니다(예: "\\.\PHYSICALDRIVE0 ").

NTCreateFile 호출로 반환되는 핸들이 FILE_TYPE_DISK 형식이 아닙니다.

options 에는 지원되지 않는 값이 포함됩니다.

파일을 찾을 수 없습니다.

I/O 오류가 발생했습니다.

호출자에게 필요한 권한이 없습니다.

지정된 드라이브가 잘못되었습니다 path (예: 매핑되지 않은 드라이브에 있는 경우).

지정된 경로에 대해 운영 체제에서 요청한 액세스가 허용되지 않습니다. 이 문제는 쓰기 또는 ReadWrite 액세스가 지정되고 파일 또는 디렉터리가 읽기 전용 액세스로 설정된 경우에 발생합니다.

오류 코드가 ERROR_SHARING_VIOLATION 설정하여 NtCreateFile이 실패합니다.

설명

예외가 throw되면 열려 있는 트랜잭션을 롤백해야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.

추가 정보

적용 대상