Share via


Descriptores de acceso y conjuntos de filas

Actualización: noviembre 2007

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 es capaz de controlar múltiples descriptores de acceso de varios tipos.

Tipos de descriptores de acceso

Todos los descriptores de acceso derivan de CAccessorBase. CAccessorBase proporciona enlaces de parámetro y de columna.

La siguiente ilustración muestra los tipos de descriptores de acceso.

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, con el origen de datos.

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

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

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

  • CManualAccessor   Con esta clase se pueden utilizar los tipos de datos que se deseen si el proveedor es capaz de convertir el tipo. Controla tanto columnas de resultados como parámetros de comando.

A continuación se muestra la lista de compatibilidades de los descriptores de acceso de las plantillas OLE DB.

Tipo de descriptor de acceso

Dinámico

Controla parámetros

Búfer

Múltiples descriptores de acceso

CAccessor

No

Usuario

CDynamicAccessor

No

Plantillas OLE DB

No

CDynamicParameterAccessor

Plantillas OLE DB

No

CDynamicStringAccessor[A,W]

No

Plantillas OLE DB

No

CManualAccessor

Usuario

Tipos de conjuntos de filas

Las plantillas OLE DB admiten tres tipos de conjuntos de filas (vea la ilustración anterior): conjuntos de filas simples (implementados por CRowset), conjuntos de filas masivos (implementados por CBulkRowset) y conjuntos de filas de matriz (implementados por CArrayRowset). Los conjuntos de filas simples recuperan un único identificador de fila cuando se llama a MoveNext. Los conjuntos de filas masivos pueden recuperar múltiples identificadores de fila. Los conjuntos de filas de matriz son conjuntos de filas a los que se puede tener acceso por medio de la sintaxis de matrices.

La siguiente ilustración muestra los tipos de conjuntos de filas.

Clases de conjuntos de filas

Los conjuntos de filas de esquema no obtienen acceso a los datos del almacén de datos, pero sí a la información acerca de éste, denominada metadatos. Los conjuntos de filas de esquema se usan normalmente en situaciones en las que no se conoce la estructura de la base de datos en tiempo de compilación y es necesario obtenerla en tiempo de ejecución.

Vea también

Conceptos

Plantillas de consumidor OLE DB (C++)