Conjunto de registros (ODBC)
Este tema es aplicable a las clases ODBC de MFC.
Un objeto CRecordset representa un conjunto de registros seleccionados de un origen de datos. Los registros pueden proceder de:
Una tabla.
Una consulta.
Un procedimiento almacenado que accede a una o varias tablas.
Un ejemplo de un conjunto de registros basado en una tabla es "todos los clientes", que accede a una tabla de clientes. Un ejemplo de una consulta es "todas las facturas de Joe Smith". Un ejemplo de un conjunto de registros basado en un procedimiento almacenado (a veces denominado "consulta predefinida") es "todas las cuentas morosas", que invoca un procedimiento almacenado en la base de datos back-end. Un conjunto de registros puede combinar dos o más tablas del mismo origen de datos, pero no tablas de orígenes de datos diferentes.
Nota:
Algunos controladores ODBC admiten vistas de la base de datos. En este sentido, una vista es una consulta creada originalmente con una instrucción CREATE VIEW
de SQL.
Funcionalidades del conjunto de registros
Todos los objetos de conjunto de registros comparten las funcionalidades siguientes:
Si el origen de datos no es de solo lectura, puede especificar que el conjunto de registros sea actualizable, agregable o de solo lectura. Si el conjunto de registros es actualizable, puede elegir métodos de bloqueo optimistas o pesimistas, siempre y cuando el controlador proporcione la compatibilidad de bloqueo apropiada. Si el origen de datos es de solo lectura, el conjunto de registros será de solo lectura.
Puede llamar a funciones miembro para desplazarse por los registros seleccionados.
Puede filtrar los registros para restringir cuáles se seleccionan entre los disponibles.
Puede ordenar los registros de manera ascendente o descendente, en función de una o varias columnas.
Puede parametrizar el conjunto de registros para aprobar la selección del conjunto de registros en tiempo de ejecución.
Instantáneas y dynasets
Hay dos tipos principales de conjuntos de registros: instantáneas y dynasets. Ambos son compatibles con la clase CRecordset
. Cada uno de ellos comparte las características comunes de todos los conjuntos de registros, pero también extiende las funcionalidades comunes según su especialización. Las instantáneas proporcionan una vista estática de los datos y son útiles para los informes y otras situaciones en las que se quiere obtener una vista de los datos tal como se encontraban en un momento determinado. Los dynasets son útiles cuando se quiere que las actualizaciones realizadas por otros usuarios sean visibles en el conjunto de registros sin necesidad de volver a consultar o actualizar el conjunto de registros. Las instantáneas y los dynasets pueden ser actualizables o de solo lectura. Para reflejar los registros agregados o eliminados por otros usuarios, llame a CRecordset::Requery.
CRecordset
también admite otros dos tipos de conjuntos de registros: dinámicos y de solo avance. Los conjuntos de registros dinámicos son similares a los dynasets, pero los primeros reflejan todos los registros que se han agregado o eliminado sin llamar a CRecordset::Requery
. Por este motivo, los conjuntos de registros dinámicos suelen ser costosos en lo que respecta al tiempo de procesamiento en el sistema de administración de bases de datos y muchos controladores ODBC no los admiten. En cambio, los conjuntos de registros de solo avance proporcionan el método más eficaz de acceso a datos para los conjuntos de registros que no requieren actualizaciones ni desplazamiento hacia atrás. Por ejemplo, podría usar un conjunto de registros de solo avance para migrar datos de un origen de datos a otro si solo necesita desplazarse por los datos hacia delante. Para usar un conjunto de registros de solo avance, debe hacer lo siguiente:
Pasar la opción
CRecordset::forwardOnly
como parámetro nOpenType de la función miembro Open.Especificar
CRecordset::readOnly
en el parámetro dwOptions deOpen
.Nota:
Para obtener información sobre los requisitos del controlador ODBC para la compatibilidad con dynasets, vea ODBC. Vea Lista de controladores ODBC para obtener una lista de los controladores ODBC incluidos en esta versión de Visual C++ e información sobre cómo obtener controladores adicionales.
Conjuntos de registros
Para cada tabla, vista o procedimiento almacenado al que quiere acceder, por lo general define una clase derivada de CRecordset
. (La excepción es una combinación de base de datos, en la que un conjunto de registros representa columnas de dos o más tablas). Al derivar una clase de conjunto de registros, se habilita el mecanismo de intercambio de campos de registro (RFX) o el mecanismo de intercambio de campos de registro masivo (RFX masivo), que son similares al mecanismo de intercambio de datos de diálogo (DDX). RFX y RFX masivo simplifican la transferencia de datos del origen de datos al conjunto de registros. Además, RFX transfiere datos del conjunto de registros al origen de datos. Para más información, consulte Intercambio de campos de registro (RFX) y Conjunto de registros: Obtener registros de forma masiva (ODBC).
Un objeto de conjunto de registros proporciona acceso a todos los registros seleccionados. Puede desplazarse por los diferentes registros seleccionados mediante funciones miembro CRecordset
, como MoveNext
y MovePrev
. Al mismo tiempo, un objeto de conjunto de registros representa uno solo de los registros seleccionados: el registro actual. Para examinar los campos del registro actual, declare las variables de miembro de la clase de conjunto de registros que se correspondan con las columnas de la tabla o de los registros que se derivan de la consulta de la base de datos. Para información sobre los miembros de datos del conjunto de registros, consulte Conjunto de registros: Arquitectura (ODBC).
En los siguientes temas se explica con más detalle el uso de los objetos de conjunto de registros. Los temas se muestran en categorías funcionales y en el orden natural de exploración para permitir una lectura secuencial.
Temas sobre los mecanismos para abrir, leer y cerrar conjuntos de registros
Conjunto de registros: Declarar una clase para una tabla (ODBC)
Conjunto de registros: Crear y cerrar conjuntos de registros (ODBC)
Conjunto de registros: Marcadores y posiciones absolutas (ODBC)
Conjunto de registros: Parametrizar un conjunto de registros (ODBC)
Temas sobre los mecanismos para modificar conjuntos de registros
Conjunto de registros: Agregar, actualizar y eliminar registros (ODBC)
Conjunto de registros: Volver a consultar un conjunto de registros (ODBC)
Temas sobre técnicas más avanzadas
Conjunto de registros: Declarar una clase para una consulta predefinida (ODBC)
Conjunto de registros: Enlazar dinámicamente columnas de datos (ODBC)
Conjunto de registros: Obtener registros de forma masiva (ODBC)
Conjunto de registros: Trabajar con grandes elementos de datos (ODBC)
Conjunto de registros: Obtener cálculos SUM y otros resultados agregados (ODBC)
Temas sobre el funcionamiento de los conjuntos de registros
Consulte también
Conectividad abierta de bases de datos (ODBC)
Consumidor ODBC MFC
Transacción (ODBC)