CCustomSession (CustomSess.H)
Personalizado Sess.H contiene la declaración y la implementación del objeto de sesión OLE DB. El objeto de origen de datos crea el objeto de sesión y representa una conversación entre un consumidor y un proveedor. Se pueden abrir varias sesiones simultáneas para un origen de datos. La lista de herencia para CCustomSession
es la siguiente:
/////////////////////////////////////////////////////////////////////////
// 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>
El objeto de sesión hereda de IGetDataSource
, IOpenRowset
, ISessionProperties
y IDBCreateCommand
. La interfaz IGetDataSource
permite que una sesión recupere el origen de datos que la creó. Esto resulta útil si necesita obtener propiedades del origen de datos que ha creado u otra información que el origen de datos puede proporcionar. La interfaz ISessionProperties
controla todas las propiedades de la sesión. Las interfaces IOpenRowset
y IDBCreateCommand
se usan para realizar el trabajo de la base de datos. Si el proveedor admite comandos, implementa la interfaz IDBCreateCommand
. Se usa para crear el objeto de comandos que puede ejecutar comandos. El proveedor siempre implementa el objeto IOpenRowset
. Se usa para generar un conjunto de filas a partir de un proveedor. Es un conjunto de filas predeterminado (por ejemplo, "select * from mytable"
) de un proveedor.
El asistente también genera tres clases de sesión: CCustomSessionColSchema
, CCustomSessionPTSchema
y CCustomSessionTRSchema
. Estas sesiones se usan para conjuntos de filas de esquema. Los conjuntos de filas de esquemas permiten al proveedor devolver metadatos al consumidor sin que este tenga que ejecutar una consulta u obtener datos. La captura de metadatos puede ser mucho más rápida que encontrar las funcionalidades de un proveedor.
La especificación de OLE DB requiere que los proveedores que implementan la interfaz IDBSchemaRowset
admitan tres tipos de conjuntos de filas del esquema: DBSCHEMA_COLUMNS, DBSCHEMA_PROVIDER_TYPES y DBSCHEMA_TABLES. El asistente genera implementaciones para cada conjunto de filas de esquema. Cada clase generada por el asistente contiene un método Execute
. En este método Execute
, puede devolver datos al proveedor sobre qué tablas, columnas y tipos de datos admite. Estos datos se conocen en tiempo de compilación.