Compartir a través de


Descriptores de acceso y conjuntos de filas

Para establecer y recuperar datos, las plantillas OLE DB usan un descriptor de acceso y un conjunto de filas a través de la clase CAccessorRowset. Esta clase puede manejar varios descriptores de acceso de diferentes tipos.

Tipos de descriptores de acceso

Todos los descriptores de acceso derivan de CAccessorBase. CAccessorBase proporciona el enlace tanto de parámetros como de columnas.

En la siguiente ilustración se muestran los tipos de descriptores de acceso.

Diagram that shows the relationships between Accessor types.
Clases de descriptores de acceso

  • CAccessor Use este descriptor de acceso cuando conozca la estructura del origen de la base de datos en tiempo de diseño. CAccessor enlaza estáticamente un registro de base de datos, que contiene el búfer, al origen de datos.

  • CDynamicAccessor Use este descriptor de acceso cuando no conozca la estructura de la base de datos en tiempo de diseño. CDynamicAccessor llama IColumnsInfo::GetColumnInfo para obtener la información de la columna de la base de datos. Crea y gestiona un descriptor de acceso y el búfer.

  • CDynamicParameterAccessor Use este descriptor de acceso para controlar los tipos de comandos desconocidos. Al preparar los comandos, CDynamicParameterAccessor puede obtener información de parámetros de la interfaz de ICommandWithParameters, si el proveedor admite ICommandWithParameters.

  • CDynamicStringAccessor, CDynamicStringAccessorA y CDynamicStringAccessorW Use estas clases cuando no tenga conocimientos del esquema de la base de datos. CDynamicStringAccessorA recupera datos como cadenas ANSI; CDynamicStringAccessorW recupera datos como cadenas Unicode.

  • CManualAccessor Con esta clase, puede usar cualquier tipo de datos que desee si el proveedor puede convertir el tipo. Controla tanto columnas de resultados como parámetros de comando.

En la tabla siguiente se resume la compatibilidad con los tipos de descriptores de acceso de plantilla OLE DB.

Tipo de descriptor de acceso Dinámica Controla los parámetros Buffer Descriptores de acceso múltiples
CAccessor No User
CDynamicAccessor No plantillas OLE DB No
CDynamicParameterAccessor plantillas OLE DB No
CDynamicStringAccessor[A,W] No plantillas OLE DB No
CManualAccessor User

Tipos de conjuntos de filas

Las plantillas OLE DB admiten tres tipos de conjuntos de filas (consulte la ilustración anterior): conjuntos de filas únicos (implementados por CRowset), conjuntos de filas en masa (implementado por CBulkRowset) y conjuntos de filas de matriz (implementados por CArrayRowset). Los conjuntos de filas únicos capturan un identificador de fila único cuando MoveNext es llamado. Los conjuntos de filas en masa pueden capturar varios identificadores de fila. Los conjuntos de filas de matriz son conjuntos de filas a los que se puede acceder mediante la sintaxis de matriz.

En la siguiente ilustración se muestran los tipos de conjuntos de fila.

Diagram that shows the relationships between Rowset types.
Clases de conjunto de fila

Los conjuntos de filas de esquema no tienen acceso a los datos del almacén de datos, sino que acceden a la información sobre el almacén de datos, denominada metadatos. Los conjuntos de filas de esquema se usan normalmente en situaciones en las que la estructura de la base de datos no se conoce en tiempo de compilación y se deben obtener en tiempo de ejecución.

Consulte también

Plantillas de consumidor OLE DB