UNIDAD 5: VISUAL C++ INTRODUCION A LAS BASES DE DATOS

TEMA 10: FILTROS VISUAL C++ CGI

Otro problema similar al anterior es el de filtros es decir en muchas ocasiones es necesario obtener informacion acerca de un subconjunto de renglones de la tabla.

Por ejemplo todos los estudiantes que sean mayores de 17 anos, todos los clientes que sean de Tijuana, etc., a esto le llamamos filtros o condiciones.

Tambien se resuelve de manera similar al anterior, es decir usando la instruccion select etc, from tabla, where CONDICION;

Codigo prog21.html

<HTML>
<FORM ACTION=/cgi-bin/tusitio/prog21.exe METHOD=get>
EDAD > =<INPUT TYPE=text NAME=EDAD><BR>
<INPUT TYPE=submit VALUE=BUSCAR>
</FORM></HTML>

corrida prog21.html

image316.jpg

prog21.cpp

#using <mscorlib.dll>
#using <System.dll>
#using <System.Data.dll>
#using <System.Xml.dll>
#using <lcnet.dll>
using namespace System;
using namespace System::Data;
using namespace System::Xml;
using namespace System::Data::OleDb;
void main(){
// declarando variables globales
OleDbConnection *coneccion;
OleDbDataAdapter *canal;
DataSet *tabla;
//creando objetos necesarios
coneccion=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\progfacil\\lauro\\mibase.mdb");
tabla = new DataSet();
//capturando clave a buscar
String *edad=lcnet::getparametro("EDAD");
// terminando de encadenar la string q
String *q=String::Concat("select * from mitabla where edad >= ",edad);
// y ordenando la salida revisar tutorial de sql
q = String::Concat(q, " order by nombre desc");
canal = new OleDbDataAdapter(q, coneccion);
canal->Fill(tabla, "mitabla");
// contruyendo una tabla html de salida
Console::WriteLine("Content-Type:text/html\n");
Console::WriteLine("<HTML><TABLE Border=10 CellPadding=5><TR>");
// construyendo los encabezados de la tabla
Console::WriteLine("<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th></TR>");
// calculando la cantidad de renglones de la tabla dataset
// y empezar a estudiar las propiedades del dataset
int cren=tabla->Tables->Item["mitabla"]->Rows->Count;
// ciclo for renglon para visitar todos los renglones de la tabla dataset
// ciclo interno for columna para pasar el dato del dataset al table html
for (int r=0; r <= cren-1; r++)
{ Console::WriteLine("<TR>");
for(int c=0; c<=2; c++)
{
// cargando el dato a una variable string para que no quede muy grande el writeline de despliegue
String *temp = tabla->Tables->Item["mitabla"]->Rows->Item[r]->Item[c]->ToString();
Console::WriteLine("<TD>");
Console::WriteLine(temp);
Console::WriteLine("</TD>");
} //termina for col
Console::WriteLine("</TR>");
} // termina for renglon
Console::WriteLine("</HTML>");
} // fin main

Nota: siguen siendo combinaciones de los programas anteriores pero seria prudente mejor usar dos combobox uno para la variable, otro para el operador relacional y un text para el dato y mandar estos tres datos al prog21.exe (se ocupan varios command.parameters() pero eso queda de tarea.

Corrida prog21.cpp o exe

image454.jpg

TAREAS PROGRAMACION VISUAL C++ :

1.- preparar programas de filtrado para sus bases de datos, recordar que sus formas html's deben construirlas con 2 combos y un text, suerte

Politica de Privacidad