분산 쿼리에서 사용하는 OLE DB 개체
다음 표에서는 Transact-SQL 분산 쿼리에서 사용하는 OLE DB 개체 및 인터페이스를 보여 줍니다. 어떤 OLE DB 공급자라도 최소한의 개체 및 인터페이스 집합을 지원해야 Transact-SQL 분산 쿼리에서 사용할 수 있습니다. 이러한 개체 및 인터페이스는 아래 표의 필수 열에 예로 표시되어 있습니다. 필수 열에 아니요로 표시된 개체 및 인터페이스는 고급 분산 쿼리 기능 지원을 위해서만 필요합니다. 공급자가 인터페이스를 지원하지 않으면 관련된 Transact-SQL 기능이 지원되지 않습니다. 예를 들어 IRowsetLocate와 IRowsetChange 인터페이스가 지원되지 않으면 원격 테이블에서 UPDATE 또는 DELETE 문이 실행되지 않습니다.
개체 |
인터페이스 |
필수 |
설명 |
---|---|---|---|
Data Source |
IDBInitialize |
예 |
데이터 및 보안 컨텍스트를 초기화 및 설정합니다. |
|
IDBCreateSession |
예 |
DB Session 개체를 만듭니다. |
|
IDBProperties |
예 |
공급자의 기능에 대한 정보를 가져 오고 초기화 속성을 설정합니다. |
|
IDBInfo |
아니요 |
공급자가 지원하는 SQL 구문에 대한 정보를 가져 옵니다. |
DB Session |
IDBSchemaRowset |
아니요 |
테이블 및 열 메타데이터를 가져옵니다. 필요한 행 집합은 TABLES와 COLUMNS입니다. 사용 가능한 경우, TABLES_INFO, CATALOGS, INDEXES, STATISTICS, TABLE_STATISTICS, VIEWS, PRIMARY_KEYS, TABLE_PRIVILEGES, COLUMN_PRIVILEGES 행 집합이 사용됩니다. |
|
IOpenRowset |
예 |
테이블, 인덱스 또는 히스토그램의 행 집합을 엽니다. |
|
IGetDataSource |
예 |
DB 세션 개체의 데이터 원본 개체를 반환합니다. |
|
IDBCreateCommand |
아니요 |
Command 개체(쿼리)를 만듭니다. |
|
ITransactionLocal |
아니요 |
공급자에서 트랜잭션을 시작합니다. |
|
ITransactionJoin |
아니요 |
분산 트랜잭션 지원을 위해 사용합니다. 이 인터페이스가 지원되지 않으면, 사용자 트랜잭션에서 원격 공급자에 대한 업데이트가 허용되지 않습니다. |
Rowset(테이블) |
IRowset |
예 |
행을 검색합니다. |
|
IAccessor |
예 |
행 집합의 열에 바인딩합니다. |
|
IColumnsInfo |
예 |
행 집합의 열에 대한 정보를 가져옵니다. |
|
IRowsetInfo |
예 |
행 집합 속성에 대한 정보를 가져옵니다. |
|
IRowsetLocate |
아니요 |
UPDATE 또는 DELETE 작업 및 인덱스 기반 조회에 필요합니다. |
|
IRowsetChange |
아니요 |
테이블의 INSERT, UPDATE, DELETE 작업에 필요합니다. 기본 테이블에 대한 행 집합은 INSERT, UPDATE, DELETE 문을 지원하기 위해 이 인터페이스를 지원해야 합니다. |
|
IConvertType |
예 |
행 집합이 해당 열에서 특정 데이터 형식 변환을 지원하는지 확인합니다. |
Rowset(인덱스) |
IRowset |
예 |
행을 검색합니다. |
|
IAccessor |
예 |
행 집합의 열에 바인딩합니다. |
|
IColumnsInfo |
예 |
행 집합의 열에 대한 정보를 가져옵니다. |
|
IRowsetInfo |
예 |
행 집합 속성에 대한 정보를 가져옵니다. |
|
IRowsetIndex |
예 |
인덱스의 행 집합에 필요합니다. 인덱싱 기능(범위 설정, 검색)에 사용됩니다. |
|
IConvertType |
예 |
행 집합이 해당 열에서 특정 데이터 형식 변환을 지원하는지 확인합니다. |
Command(옵션) |
ICommand |
예 |
쿼리를 실행하는 데 사용합니다. |
|
ICommandText |
예 |
쿼리 텍스트 정의에 사용합니다. |
|
ICommandProperties |
예 |
명령이 반환한 행 집합에 필요한 속성을 지정합니다. |
|
ICommandWithParameters |
아니요 |
매개 변수가 있는 쿼리 실행에 사용합니다. |
|
ICommandPrepare |
아니요 |
메타데이터를 가져오기 위한 명령을 준비하는 데 사용합니다. |
Error(옵션) |
IErrorRecords |
예 |
오류 레코드에 대한 IErrorInfo 인터페이스에 포인터를 가져 옵니다. |
|
IErrorInfo |
예 |
오류 레코드의 텍스트 설명을 가져 옵니다. |
모든 개체(옵션) |
ISupportErrorInfo |
아니요 |
지정된 인터페이스에서의 오류 개체 지원 여부를 결정합니다. |