CCustomSession (CustomSess.H)

CustomSess.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>

会话对象继承自 IGetDataSourceIOpenRowsetISessionPropertiesIDBCreateCommand。 该 IGetDataSource 接口允许会话检索创建它的数据源。 如果需要从创建的数据源获取属性,或者从数据源可以提供的其他信息获取属性,这非常有用。 接口 ISessionProperties 处理会话的所有属性。 接口 IOpenRowsetIDBCreateCommand 用于执行数据库工作。 如果提供程序支持命令,它将实现 IDBCreateCommand 接口。 它用于创建可以执行命令的命令对象。 提供程序始终实现 IOpenRowset 对象。 它用于从提供程序生成行集。 它是来自提供程序的默认行集(例如,"select * from mytable")。

向导还会生成三个会话类:CCustomSessionColSchemaCCustomSessionPTSchemaCCustomSessionTRSchema。 这些会话用于架构行集。 架构行集允许提供程序将元数据返回到使用者,而无需使用者执行查询或提取数据。 提取元数据比查找提供程序的功能要快得多。

OLE DB 规范要求实现 IDBSchemaRowset 接口的提供程序支持三种架构行集类型:DBSCHEMA_COLUMNS、DBSCHEMA_PROVIDER_TYPES 和 DBSCHEMA_TABLES。 向导为每个架构行集生成实现。 向导生成的每个类都包含一个 Execute 方法。 在此方法 Execute 中,可以将数据返回到提供程序,了解支持的表、列和数据类型。 此数据在编译时是已知的。

另请参阅

提供程序向导生成的文件