SqlFileStream 생성자

정의

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

오버로드

SqlFileStream(String, Byte[], FileAccess)

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

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

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

설명

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

파일 액세스 사용 권한
읽기 Read
쓰기 Write
ReadWrite ReadWrite

CAS에 대한 자세한 내용은 코드 액세스 보안 및 ADO.NET 참조하세요.

SqlFileStream(String, Byte[], FileAccess)

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.Write를 사용하는 경우 SqlFileStream은 0바이트 파일을 가리킵니다. 개체가 닫히고 트랜잭션이 커밋되면 기존 데이터를 덮어씁니다.

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

예외

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

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

path가 "\\.\"로 시작됩니다(예: "\\.\PHYSICALDRIVE0 ").

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

options에 지원되지 않는 값이 포함되어 있습니다.

파일을 찾을 수 없습니다.

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

호출자에게 필요한 권한이 없는 경우

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

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

오류 코드가 ERROR_SHARING_VIOLATION으로 설정된 상태로 NtCreateFile이 실패합니다.

설명

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

추가 정보

적용 대상

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

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.Write를 사용하는 경우 SqlFileStream은 0바이트 파일을 가리킵니다. 개체가 닫히고 트랜잭션이 커밋되면 기존 데이터를 덮어씁니다.

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

options
FileOptions

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

allocationSize
Int64

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

예외

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

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

path가 "\\.\"로 시작됩니다(예: "\\.\PHYSICALDRIVE0 ").

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

options에 지원되지 않는 값이 포함되어 있습니다.

파일을 찾을 수 없습니다.

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

호출자에게 필요한 권한이 없는 경우

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

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

오류 코드가 ERROR_SHARING_VIOLATION으로 설정된 상태로 NtCreateFile이 실패합니다.

설명

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

추가 정보

적용 대상