다음을 통해 공유


CCustomSession(CustomSess.H)

사용자 지정Sess.H에는 OLE DB 세션 개체에 대한 선언 및 구현이 포함됩니다. 데이터 원본 개체는 세션 개체를 만들고 소비자와 공급자 간의 대화를 나타냅니다. 하나의 데이터 원본에 대해 여러 개의 동시 세션을 열 수 있습니다. 상속 목록은 CCustomSession 다음과 같습니다.

/////////////////////////////////////////////////////////////////////////
// CCustomSession
class ATL_NO_VTABLE CCustomSession :
   public CComObjectRootEx<CComSingleThreadModel>,
   public IGetDataSourceImpl<CCustomSession>,
   public IOpenRowsetImpl<CCustomSession>,
   public ISessionPropertiesImpl<CCustomSession>,
   public IObjectWithSiteSessionImpl<CCustomSession>,
   public IDBSchemaRowsetImpl<CCustomSession>,
   public IDBCreateCommandImpl<CCustomSession, CCustomCommand>

세션 개체는 , IOpenRowsetISessionPropertiesIDBCreateCommand.에서 IGetDataSource상속됩니다. 인터페이스 IGetDataSource 를 사용하면 세션에서 만든 데이터 원본을 검색할 수 있습니다. 이 기능은 사용자가 만든 데이터 원본 또는 데이터 원본에서 제공할 수 있는 다른 정보에서 속성을 가져와야 하는 경우에 유용합니다. 인터페이스는 ISessionProperties 세션의 모든 속성을 처리합니다. IOpenRowsetIDBCreateCommand 인터페이스는 데이터베이스 작업을 수행하는 데 사용됩니다. 공급자가 명령을 지원하는 경우 인터페이스를 IDBCreateCommand 구현합니다. 명령을 실행할 수 있는 명령 개체를 만드는 데 사용됩니다. 공급자는 항상 개체를 IOpenRowset 구현합니다. 공급자에서 행 집합을 생성하는 데 사용됩니다. 공급자의 기본 행 집합(예: "select * from mytable")입니다.

또한 마법사는 세 개의 세션 클래스인 < a0CCustomSessionPTSchema/>를 생성합니다CCustomSessionColSchemaCCustomSessionTRSchema. 이러한 세션은 스키마 행 집합에 사용됩니다. 스키마 행 집합을 사용하면 소비자가 쿼리를 실행하거나 데이터를 가져올 필요 없이 공급자가 소비자에게 메타데이터를 반환할 수 있습니다. 메타데이터를 가져오는 것은 공급자의 기능을 찾는 것보다 훨씬 빠를 수 있습니다.

OLE DB 사양을 사용하려면 인터페이스를 구현하는 IDBSchemaRowset 공급자가 DBSCHEMA_COLUMNS, DBSCHEMA_PROVIDER_TYPES 및 DBSCHEMA_TABLES 세 가지 스키마 행 집합 형식을 지원해야 합니다. 마법사는 각 스키마 행 집합에 대한 구현을 생성합니다. 마법사에서 생성된 각 클래스에는 메서드가 Execute 포함됩니다. 이 Execute 메서드에서는 지원하는 테이블, 열 및 데이터 형식에 대한 데이터를 공급자에게 반환할 수 있습니다. 이 데이터는 컴파일 시간에 알려져 있습니다.

참고 항목

공급자 마법사가 생성하는 파일