SqlFileStream 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SqlFileStream 클래스의 새 인스턴스를 초기화합니다.
오버로드
| SqlFileStream(String, Byte[], FileAccess) |
SqlFileStream 클래스의 새 인스턴스를 초기화합니다. |
| SqlFileStream(String, Byte[], FileAccess, FileOptions, Int64) |
SqlFileStream 클래스의 새 인스턴스를 초기화합니다. |
설명
다음 표에서는 스택의 모든 호출자가 생성자를 사용해야 SqlFileStream 하는 CAS(코드 액세스 보안) 권한을 나열합니다.
| 파일 액세스 | 사용 권한 |
|---|---|
| 읽기 | Read |
| 쓰기 | Write |
| ReadWrite | Read 및 Write |
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, Write 및 ReadWrite입니다.
FileAccess.Read를 사용하는 경우 SqlFileStream 개체를 사용하여 모든 기존 데이터를 읽을 수 있습니다.
FileAccess.Write를 사용하는 경우 SqlFileStream은 0바이트 파일을 가리킵니다. 개체가 닫히고 트랜잭션이 커밋되면 기존 데이터를 덮어씁니다.
FileAccess.ReadWrite를 사용하는 경우 SqlFileStream은 기존의 모든 데이터가 포함된 파일을 가리킵니다. 핸들은 파일의 시작 부분에 배치됩니다.
System.IO
Seek 메서드 중 하나를 사용하여 새 데이터를 쓰거나 첨부할 파일 내로 핸들 위치를 이동할 수 있습니다.
예외
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, Write 및 ReadWrite입니다.
FileAccess.Read를 사용하는 경우 SqlFileStream 개체를 사용하여 모든 기존 데이터를 읽을 수 있습니다.
FileAccess.Write를 사용하는 경우 SqlFileStream은 0바이트 파일을 가리킵니다. 개체가 닫히고 트랜잭션이 커밋되면 기존 데이터를 덮어씁니다.
FileAccess.ReadWrite를 사용하는 경우 SqlFileStream은 기존의 모든 데이터가 포함된 파일을 가리킵니다. 핸들은 파일의 시작 부분에 배치됩니다.
System.IO
Seek 메서드 중 하나를 사용하여 새 데이터를 쓰거나 첨부할 파일 내로 핸들 위치를 이동할 수 있습니다.
- options
- FileOptions
파일을 여는 동안 사용할 옵션을 지정합니다. 지원되는 FileOptions 값은 Asynchronous, WriteThrough, SequentialScan 및 RandomAccess입니다.
- 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되면 열려 있는 트랜잭션을 롤백해야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.