Arquitectura de plantillas de proveedores OLE DB
Orígenes de datos y sesiones
La arquitectura del proveedor OLE DB incluye un objeto de origen de datos y una o varias sesiones. El objeto de origen de datos es el objeto inicial para el que cada proveedor debe crear instancias. Cuando una aplicación de consumidor necesita datos, crea conjuntamente el objeto de origen de datos para iniciar el proveedor. El objeto de origen de datos crea un objeto de sesión (mediante la interfaz IDBCreateSession
) a través del cual el consumidor se conecta al objeto de origen de datos. Los programadores de ODBC pueden considerar que el objeto de origen de datos es equivalente a HENV
y el objeto de sesión es equivalente a HDBC
.
Junto con los archivos de origen creados por el Asistente para proveedores OLE DB, las plantillas OLE DB implementan un objeto de origen de datos. Una sesión es un objeto que se corresponde con el valor TSession
de OLE DB.
Interfaces obligatorias y opcionales
Las plantillas de proveedor OLE DB proporcionan implementaciones empaquetadas previamente para todas las interfaces necesarias. OLE DB define interfaces obligatorias y opcionales para varios tipos de objetos:
Las plantillas de proveedor OLE DB no implementan los objetos de fila y almacenamiento.
En la tabla siguiente se enumeran las interfaces obligatorias y opcionales de los objetos enumerados anteriormente según la documentación del SDK de OLE DB 2.6.
Componente | Interfaz | Comentario |
---|---|---|
Origen de datos (CDataSource) | [obligatorio] IDBCreateSession [obligatorio] IDBInitialize [obligatorio] IDBProperties [obligatorio] IPersist [opcional] IConnectionPointContainer [opcional] IDBAsynchStatus [opcional] IDBDataSourceAdmin [opcional] IDBInfo [opcional] IPersistFile [opcional] ISupportErrorInfo |
Conexión del consumidor al proveedor. El objeto se usa para especificar propiedades en la conexión, como el identificador de usuario, la contraseña y el nombre del origen de datos. El objeto también se puede usar para administrar un origen de datos (crear, actualizar, eliminar, tablas, etc.). |
Sesión (CSession) | [obligatorio] IGetDataSource [obligatorio] IOpenRowset [obligatorio] ISessionProperties [opcional] IAlterIndex [opcional] IAlterTable [opcional] IBindResource [opcional] ICreateRow [opcional] IDBCreateCommand [opcional] IDBSchemaRowset [opcional] IIndexDefinition [opcional] ISupportErrorInfo [opcional] ITableCreation [opcional] ITableDefinition [opcional] ITableDefinitionWithConstraints [opcional] ITransaction [opcional] ITransactionJoin [opcional] ITransactionLocal [opcional] ITransactionObject |
El objeto de sesión es una única conversación entre un consumidor y un proveedor. Es similar a ODBC HSTMT , en el que puede haber muchas sesiones simultáneas activas.El objeto de sesión es el vínculo principal para obtener la funcionalidad OLE DB. Para llegar a un comando, una transacción o un objeto de conjunto de filas, recorra el objeto de sesión. |
Conjunto de filas (CRowset) | [obligatorio] IAccessor [obligatorio] IColumnsInfo [obligatorio] IConvertType [obligatorio] IRowset [obligatorio] IRowsetInfo [opcional] IChapteredRowset [opcional] IColumnsInfo2 [opcional] IColumnsRowset [opcional] IConnectionPointContainer [opcional] IDBAsynchStatus [opcional] IGetRow [opcional] IRowsetChange [opcional] IRowsetChapterMember [opcional] IRowsetCurrentIndex [opcional] IRowsetFind [opcional] IRowsetIdentity [opcional] IRowsetIndex [opcional] IRowsetLocate [opcional] IRowsetRefresh [opcional] IRowsetScroll [opcional] IRowsetUpdate [opcional] IRowsetView [opcional] ISupportErrorInfo [opcional] IRowsetBookmark |
El objeto del conjunto de filas son los datos del origen de datos. El objeto se usa para los enlaces de esos datos y cualquier operación básica (actualización, captura, movimiento y otros) en los datos. Siempre tiene un objeto de conjunto de filas para mantener y manipular los datos. |
Comando (CCommand) | [obligatorio] IAccessor [obligatorio] IColumnsInfo [obligatorio] ICommand [obligatorio] ICommandProperties [obligatorio] ICommandText [obligatorio] IConvertType [opcional] IColumnsRowset [opcional] ICommandPersist [opcional] ICommandPrepare [opcional] ICommandWithParameters [opcional] ISupportErrorInfo [opcional] ICommandStream |
El objeto de comando controla las operaciones sobre datos como consultas. Puede controlar instrucciones parametrizadas o no parametrizadas. El objeto de comando también es responsable de controlar los enlaces de parámetros y columnas de resultados. Un enlace es una estructura que contiene información sobre cómo se debe recuperar una columna en un conjunto de filas. Contiene información como ordinal, tipo de datos, longitud y estado. |
Transacción (opcional) | [obligatorio] IConnectionPointContainer [obligatorio] ITransaction [opcional] ISupportErrorInfo |
El objeto de transacción define una unidad atómica de trabajo en un origen de datos y determina cómo se relacionan esas unidades de trabajo entre sí. Este objeto no es compatible directamente con las plantillas de proveedor OLE DB (es decir, usted crea su propio objeto). |
Para obtener más información, consulte los temas siguientes: