Conjunto de registros: Crear y cerrar conjuntos de registros (ODBC)
Nota:
El Asistente para consumidores ODBC MFC no está disponible en Visual Studio 2019 ni en versiones posteriores. Aun así, puede crear un consumidor manualmente.
Este tema es aplicable a las clases ODBC de MFC.
Para usar un conjunto de registros, construya un objeto de conjunto de registros y, después, llame a su función miembro Open
para ejecutar la consulta y seleccionar los registros. Cuando termine con el conjunto de registros, cierre y destruya el objeto.
En este tema se explica:
Cuándo y cómo se puede crear un objeto de conjunto de registros.
Cuándo y cómo se puede cerrar un objeto de conjunto de registros.
Creación de conjuntos de registros en tiempo de ejecución
Para poder crear objetos de conjunto de registro en el programa, normalmente primero se escriben las clases de conjunto de registro específicas de la aplicación. Para obtener más información sobre este paso preliminar, vea Agregar un consumidor ODBC de MFC.
Abra un objeto de instantánea o dynaset cuando necesite seleccionar registros de un origen de datos. El tipo de objeto que cree dependerá de lo que necesite hacer con los datos de la aplicación y de lo que admita el controlador ODBC. Para obtener más información, vea Dynaset e Instantánea.
Para abrir un conjunto de registros
Construya un objeto de su clase derivada de
CRecordset
.Puede construir el objeto en el montón o en el marco de pila de una función.
Opcionalmente, modifique el comportamiento predeterminado del conjunto de registros. Para conocer las opciones disponibles, vea Establecer las opciones del conjunto de registros.
Llame a la función miembro Open del objeto.
En el constructor, pase un puntero a un objeto CDatabase
o pase NULL para usar un objeto de base de datos temporal que el marco crea y abre en función de la cadena de conexión devuelta por la función miembro GetDefaultConnect. El objeto CDatabase
ya podría estar conectado a un origen de datos.
La llamada a Open
usa SQL para seleccionar registros del origen de datos. El primer registro seleccionado (si existe) es el registro actual. Los valores de los campos de este registro se almacenan en los miembros de datos de campo del objeto de conjunto de registros. Si se selecciona algún registro, las funciones miembro IsBOF
y IsEOF
devuelven 0.
En la llamada a Open, puede:
Especificar si el conjunto de registros es un dynaset o una instantánea. Los conjuntos de registros se abren como instantáneas de forma predeterminada. También puede especificar un conjunto de registros de solo avance, que permite el desplazamiento solo hacia delante, un registro de cada vez.
De forma predeterminada, un conjunto de registros usa
m_nDefaultType
, el tipo predeterminado que está almacenado en el miembro de datosCRecordset
. Los asistentes escriben código para inicializarm_nDefaultType
en el tipo de conjunto de registros que elija en el asistente. En lugar de aceptar este valor predeterminado, puede sustituirlo por otro tipo de conjunto de registros.Especificar una cadena para reemplazar la instrucción SELECT de SQL predeterminada que construye el conjunto de registros.
Especificar si el conjunto de registros es de solo lectura o de solo anexión. Los conjuntos de registros permiten la actualización completa de forma predeterminada, pero puede limitarlo solo a la adición de nuevos registros o deshabilitar las actualizaciones.
En el ejemplo siguiente se muestra cómo se abre un objeto de instantánea de solo lectura de la clase CStudentSet
, una clase específica de la aplicación:
// Construct the snapshot object
CStudentSet rsStudent( NULL );
// Set options if desired, then open the recordset
if(!rsStudent.Open(CRecordset::snapshot, NULL, CRecordset::readOnly))
return FALSE;
// Use the snapshot to operate on its records...
Después de llamar a Open
, puede usar las funciones miembro y los miembros de datos del objeto para trabajar con los registros. En algunos casos, es posible que le interese volver a consultar o actualizar el conjunto de registros para incluir los cambios que se han producido en el origen de datos. Para más información, vea Conjunto de registros: Volver a consultar un conjunto de registros (ODBC).
Sugerencia
La cadena de conexión que usa durante el desarrollo podría no ser la misma que necesitan los usuarios finales. Para obtener ideas sobre cómo generalizar la aplicación en este sentido, vea Origen de datos: Administrar conexiones (ODBC).
Establecer opciones del conjunto de registros
Después de construir el objeto de conjunto de registros, pero antes de llamar a Open
para seleccionar los registros, es posible que le interese establecer algunas opciones para controlar el comportamiento del conjunto de registros. En todos los conjuntos de registros, puede hacer lo siguiente:
Especificar un filtro para restringir la selección de registros.
Especificar un criterio de ordenación para los registros.
Especificar parámetros para poder seleccionar registros mediante el uso de la información obtenida o calculada en tiempo de ejecución.
También puede establecer la siguiente opción si las condiciones son adecuadas:
- Si el conjunto de registros es actualizable y admite opciones de bloqueo, especifique el método de bloqueo usado para las actualizaciones.
Nota:
Para influir en la selección de registros, debe establecer estas opciones antes de llamar a la función miembro Open
.
Cerrar un conjunto de registros
Cuando termine con el conjunto de registros, debe deshacerse de él y desasignar su memoria.
Para cerrar un conjunto de registros
Llame a su función miembro Close.
Destruya el objeto de conjunto de registros.
Si lo ha declarado en el marco de pila de una función, el objeto se destruye automáticamente cuando sale del ámbito. En caso contrario, use el operador
delete
.
Close
libera el controlador HSTMT
del conjunto de registros, no destruye el objeto de C++.
Consulte también
Conjunto de registros (ODBC)
Conjunto de registros: Desplazamiento (ODBC)
Conjunto de registros: Agregar, actualizar y eliminar registros (ODBC)