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.

Provider architecture diagram.

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, vea los temas siguientes:

Consulte también

Plantillas de proveedores OLE DB
Interfaces OLE DB