Compartir por


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:

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

  1. 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.

  2. Opcionalmente, modifique el comportamiento predeterminado del conjunto de registros. Para conocer las opciones disponibles, vea Establecer las opciones del conjunto de registros.

  3. 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 datos CRecordset. Los asistentes escriben código para inicializar m_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

  1. Llame a su función miembro Close.

  2. 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)