Compartir a través de


Conjunto de registros: Arquitectura (ODBC)

Este tema es aplicable a las clases ODBC de MFC.

Este tema describe los miembros de datos que componen la arquitectura de un objeto de conjunto de registros:

  • Miembros de datos de campos

  • Miembros de datos de parámetros

  • Utilizar los miembros de datos m_nFields y m_nParams

Nota

Este tema se aplica a objetos derivados de CRecordset donde no se haya implementado la obtención masiva de filas.Si se implementa la obtención masiva de filas, la arquitectura es similar.Para comprender mejor estas diferencias, vea Conjunto de registros: Obtener registros de forma masiva (ODBC).

Clase de ejemplo

Al utilizar el Asistente para consumidores ODBC de MFC desde el asistente Agregar clase para declarar una clase de conjunto de registros derivada de CRecordset, la clase resultante tiene la estructura general mostrada en la siguiente clase sencilla:

class CCourse : public CRecordset
{
public:
   CCourse(CDatabase* pDatabase = NULL);
   ...
   CString m_strCourseID;
   CString m_strCourseTitle;
   CString m_strIDParam;
};

Al comienzo de la clase, el asistente agrega un conjunto de miembros de datos de campo. Cuando se crea la clase, se deben especificar uno o varios miembros de datos de campo. Si la clase está parametrizada, como lo está la clase de ejemplo (con el miembro de datos m_strIDParam), se deben agregar manualmente miembros de datos de parámetro. El asistente no permite agregar parámetros a una clase.

Miembros de datos de campo

Los miembros más importantes de una clase de conjunto de registros son los miembros de datos de campo. Por cada columna seleccionada en el origen de datos, la clase contiene un miembro de datos del tipo de datos correspondiente a esa columna. Por ejemplo, la clase de ejemplo mostrada al comienzo del tema tiene dos miembros de datos de campo, ambos de tipo CString, denominados m_strCourseID y m_strCourseTitle.

Cuando el conjunto de registros selecciona un conjunto de registros, el marco de trabajo enlaza automáticamente las columnas del registro actual (después de la llamada a Open, el primer registro es actual) con los miembros de datos de campo del objeto. Es decir, el marco de trabajo usa el miembro de datos de campo apropiado como búfer en el cual almacena el contenido de una columna de registros.

A medida que el usuario se desplaza a un nuevo registro, el marco de trabajo usa los miembros de datos de campo para representar el registro actual. El marco de trabajo actualiza los miembros de datos de campo, reemplazando los valores del registro actual. Los miembros de datos de campo también se utilizan para actualizar el registro actual y agregar nuevos registros. Como parte del proceso de actualizar un registro, se especifican los valores de actualización asignando valores directamente al miembro o miembros de datos de campo que corresponda.

Miembros de datos de parámetro

Si la clase está parametrizada, tiene uno o varios miembros de datos de parámetro. Una clase parametrizada permite basar una consulta de conjunto de registros en información obtenida o calculada en tiempo de ejecución.

Normalmente, el parámetro ayuda a restringir la selección, como en el ejemplo siguiente. Basándose en la clase de ejemplo del comienzo de este tema, el objeto de conjunto de registros puede ejecutar la siguiente instrucción SQL:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?

El signo "?" es un marcador de posición para un valor de parámetro que se especifica en tiempo de ejecución. Al crear el conjunto de registros y establecer el miembro de datos m_strIDParam en MATH101, la instrucción SQL efectiva para el conjunto de registros se convierte en:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101

Al definir los miembros de datos de parámetro, se informa al marco de trabajo acerca de los parámetros de la cadena SQL. El marco de trabajo enlaza el parámetro que permite a ODBC saber dónde obtener valores para usar en sustitución del marcador de posición. En el ejemplo, el conjunto de registros resultante contiene sólo el registro de la tabla Course con una columna CourseID cuyo valor es MATH101. Todas las columnas especificadas de este registro están seleccionadas. Se pueden especificar tantos parámetros (y marcadores de posición) como sea necesario.

Nota

La biblioteca MFC no hace nada por sí misma con los parámetros; en concreto, no realiza ninguna sustitución de texto.En su lugar, MFC indica a ODBC dónde obtener el parámetro; ODBC recupera los datos y realiza la parametrización necesaria.

Nota

El orden de los parámetros es importante.Para obtener información acerca de ésta y otra información sobre parámetros, vea Conjunto de registros: Parametrizar un conjunto de registros (ODBC).

Utilizar m_nFields y m_nParams

Cuando un asistente agrega un constructor para la clase, también inicializa el miembro de datos m_nFields que especifica el número de miembros de datos de campo de la clase. Si agrega parámetros a la clase, también debe agregar un código de inicialización para el miembro de datos m_nParams que especifica el número de miembros de datos de parámetro. El marco de trabajo utiliza estos valores para trabajar con los miembros de datos.

Para obtener más información y ejemplos, vea Intercambio de campos de registros: Utilizar RFX.

Vea también

Conceptos

Conjunto de registros (ODBC)

Conjunto de registros: Declarar una clase para una tabla (ODBC)

Intercambio de campos de registros (RFX)