Conjunto de registros: Filtrar registros (ODBC)
Este tema es aplicable a las clases ODBC de MFC.
En este tema se explica cómo filtrar un conjunto de registros para que seleccione solo un subconjunto determinado de los registros disponibles. Por ejemplo, puede que desee seleccionar solo las secciones de clase de un curso determinado, como MATH101. Un filtro es una condición de búsqueda definida por el contenido de una cláusula WHERE de SQL. Cuando el marco lo anexa a la instrucción SQL del conjunto de registros, la cláusula WHERE restringe la selección.
Debe establecer el filtro de un objeto de conjunto de registros después de construir el objeto, pero antes de llamar a su función miembro Open
(o antes de llamar a la función miembro Requery
para un objeto de conjunto de registros existente a cuya función miembro Open
se haya llamado anteriormente).
Para especificar un filtro para un objeto de conjunto de registros
Construya un nuevo objeto de conjunto de registros (o prepárese para llamar a
Requery
para un objeto existente).Establezca el valor del miembro de datos m_strFilter del objeto.
El filtro es una cadena terminada en null que contiene el contenido de la cláusula WHERE de SQL, pero no la palabra clave WHERE. Por ejemplo, use:
m_pSet->m_strFilter = "CourseID = 'MATH101'";
not
m_pSet->m_strFilter = "WHERE CourseID = 'MATH101'";
Nota:
La cadena literal "MATH101" se muestra con comillas simples arriba. En la especificación SQL de ODBC, se usan comillas simples para indicar un literal de cadena de caracteres. Consulte la documentación del controlador ODBC para conocer los requisitos de comillas de DBMS en esta situación. Esta sintaxis también se describe más cerca del final de este tema.
Establezca cualquier otra opción que necesite, como el criterio de ordenación, el modo de bloqueo o los parámetros. Especificar un parámetro es especialmente útil. Para obtener información sobre cómo parametrizar el filtro, vea Conjunto de registros: Parametrización de un conjunto de registros (ODBC).
Llame a
Open
para el nuevo objeto (o aRequery
para un objeto abierto previamente).
Sugerencia
El uso de parámetros en el filtro es potencialmente el método más eficaz para recuperar registros.
Sugerencia
Los filtros de conjunto de registros son útiles para combinar tablas y para usar parámetros basados en la información obtenida o calculada en el entorno de ejecución.
El conjunto de registros selecciona solo los registros que cumplen la condición de búsqueda que especificó. Por ejemplo, para especificar el filtro de curso descrito anteriormente (suponiendo una variable strCourseID
establecida actualmente, por ejemplo, en "MATH101"), haga lo siguiente:
// Using the recordset pointed to by m_pSet
// Set the filter
m_pSet->m_strFilter = "CourseID = " + strCourseID;
// Run the query with the filter in place
if ( m_pSet->Open( CRecordset::snapshot, NULL, CRecordset::readOnly ) )
// Use the recordset
El conjunto de registros contiene registros para todas las secciones de clase para MATH101.
Observe cómo se estableció la cadena de filtro en el ejemplo anterior mediante una variable de cadena. Este es el uso típico. Pero supongamos que quería especificar el valor literal 100 para el identificador del curso. En el código siguiente se muestra cómo establecer correctamente la cadena de filtro con un valor literal:
m_strFilter = "StudentID = '100'"; // correct
Observe el uso de caracteres de comillas simples; si establece la cadena de filtro directamente, la cadena de filtro no es:
m_strFilter = "StudentID = 100"; // incorrect for some drivers
Las comillas mostradas anteriormente se ajustan a la especificación ODBC, pero algunos DBMS pueden requerir otros caracteres de comillas. Para obtener más información, vea SQL: Personalizar la instrucción SQL del conjunto de registros (ODBC).
Nota:
Si decide invalidar la cadena SQL predeterminada del conjunto de registros pasando su propia cadena SQL a Open
, no debe establecer un filtro si la cadena personalizada tiene una cláusula WHERE. Para obtener más información sobre cómo invalidar el valor predeterminado de SQL, vea SQL: Personalizar la instrucción SQL del conjunto de registros (ODBC).
Consulte también
Conjunto de registros (ODBC)
Conjunto de registros: Ordenar registros (ODBC)
Conjunto de registros: Cómo se seleccionan los registros (ODBC)
Conjunto de registros: Actualizar los registros (ODBC)
Conjunto de registros: Bloquear registros (ODBC)
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de