OLE DB 공급자 템플릿 구조
데이터 소스 및 세션
OLE DB 공급자 아키텍처에는 데이터 원본 개체와 하나 이상의 세션이 포함됩니다. 데이터 원본 개체는 모든 공급자가 인스턴스화해야 하는 초기 개체입니다. 소비자 애플리케이션에 데이터가 필요한 경우 데이터 원본 개체를 공동으로 만들어 공급자를 시작합니다. 데이터 원본 개체는 소비자가 데이터 원본 개체에 IDBCreateSession
연결하는 세션 개체(인터페이스 사용)를 만듭니다. ODBC 프로그래머는 데이터 원본 개체가 세션 HDBC
개체와 동일 HENV
하다고 생각할 수 있습니다.
OLE DB 공급자 마법사에서 만든 원본 파일과 함께 OLE DB 템플릿은 데이터 원본 개체를 구현합니다. 세션은 OLE DB TSession
에 해당하는 개체입니다.
필수 및 선택적 인터페이스
OLE DB 공급자 템플릿은 모든 필수 인터페이스에 대해 미리 패키지된 구현을 제공합니다. 필수 및 선택적 인터페이스는 여러 유형의 개체에 대해 OLE DB에 의해 정의됩니다.
OLE DB 공급자 템플릿은 행 및 스토리지 개체를 구현하지 않습니다.
다음 표에서는 OLE DB 2.6 SDK 설명서에 따라 위에 나열된 개체에 대한 필수 및 선택적 인터페이스를 나열합니다.
구성 요소 | 인터페이스 | Comment(설명) |
---|---|---|
데이터 원본 (CDataSource) | [필수] IDBCreateSession [필수] IDBInitialize [필수] IDBProperties [필수] IPersist [선택 사항] IConnectionPointContainer [선택 사항] IDBAsynchStatus [선택 사항] IDBDataSourceAdmin [선택 사항] IDBInfo [선택 사항] IPersistFile [선택 사항] ISupportErrorInfo |
소비자에서 공급자로 연결합니다. 개체는 사용자 ID, 암호 및 데이터 원본 이름과 같은 연결의 속성을 지정하는 데 사용됩니다. 개체를 사용하여 데이터 원본을 관리할 수도 있습니다(만들기, 업데이트, 삭제, 테이블 등). |
세션 (CSession) | [필수] IGetDataSource [필수] IOpenRowset [필수] ISessionProperties [선택 사항] IAlterIndex [선택 사항] IAlterTable [선택 사항] IBindResource [선택 사항] ICreateRow [선택 사항] IDBCreateCommand [선택 사항] IDBSchemaRowset [선택 사항] IIndexDefinition [선택 사항] ISupportErrorInfo [선택 사항] ITableCreation [선택 사항] ITableDefinition [선택 사항] ITableDefinitionWithConstraints [선택 사항] ITransaction [선택 사항] ITransactionJoin [선택 사항] ITransactionLocal [선택 사항] ITransactionObject |
세션 개체는 소비자와 공급자 간의 단일 대화입니다. 많은 동시 세션이 활성 상태일 수 있다는 ODBC HSTMT 와 비슷합니다.세션 개체는 OLE DB 기능을 가져오는 기본 링크입니다. 명령, 트랜잭션 또는 행 집합 개체로 이동하려면 세션 개체를 진행합니다. |
행 집합 (CRowset) | [필수] IAccessor [필수] IColumnsInfo [필수] IConvertType [필수] IRowset [필수] IRowsetInfo [선택 사항] IChapteredRowset [선택 사항] IColumnsInfo2 [선택 사항] IColumnsRowset [선택 사항] IConnectionPointContainer [선택 사항] IDBAsynchStatus [선택 사항] IGetRow [선택 사항] IRowsetChange [선택 사항] IRowsetChapterMember [선택 사항] IRowsetCurrentIndex [선택 사항] IRowsetFind [선택 사항] IRowsetIdentity [선택 사항] IRowsetIndex [선택 사항] IRowsetLocate [선택 사항] IRowsetRefresh [선택 사항] IRowsetScroll [선택 사항] IRowsetUpdate [선택 사항] IRowsetView [선택 사항] ISupportErrorInfo [선택 사항] IRowsetBookmark |
행 집합 개체는 데이터 원본의 데이터입니다. 개체는 해당 데이터의 바인딩 및 데이터에 대한 모든 기본 작업(업데이트, 페치, 이동 등)에 사용됩니다. 항상 데이터를 유지하고 조작할 행 집합 개체가 있습니다. |
명령 (CCommand) | [필수] IAccessor [필수] IColumnsInfo [필수] ICommand [필수] ICommandProperties [필수] ICommandText [필수] IConvertType [선택 사항] IColumnsRowset [선택 사항] ICommandPersist [선택 사항] ICommandPrepare [선택 사항] ICommandWithParameters [선택 사항] ISupportErrorInfo [선택 사항] ICommandStream |
명령 개체는 쿼리와 같은 데이터에 대한 작업을 처리합니다. 매개 변수가 있는 문이나 매개 변수가 없는 문을 처리할 수 있습니다. 또한 명령 개체는 매개 변수 및 출력 열에 대한 바인딩을 처리합니다. 바인딩은 행 집합의 열을 검색하는 방법에 대한 정보를 포함하는 구조체입니다. 서수, 데이터 형식, 길이 및 상태와 같은 정보가 포함됩니다. |
트랜잭션 (선택 사항) | [필수] IConnectionPointContainer [필수] ITransaction [선택 사항] ISupportErrorInfo |
트랜잭션 개체는 데이터 원본에 대한 원자성 작업 단위를 정의하고 해당 작업 단위가 서로 어떻게 관련되는지 결정합니다. 이 개체는 OLE DB 공급자 템플릿에서 직접 지원되지 않습니다(즉, 고유한 개체를 만듭니다). |
자세한 내용은 아래 항목을 참조하세요.