PERLSCRIPT UNIDAD 5: INTRODUCION A LAS BASES DE DATOS
TEMA 9: BUSQUEDA
Recordar que existen una serie de procesos basicos con archivos, el famoso ABC(altas, bajas, consultas y modificaciones) con ellos.
Actualmente estos procesos o similares a ellos se llaman insertar, eliminar, editar, etc, en las modernas bases de datos.
En este tema se analiza la busqueda de un registro o renglon determinado, en este proceso el usuario del programa quiere que se despliegue un y solo un registro de informacion, proporcionando un dato de busqueda, generalmente la clave del registro.
La solucion es sencilla:
Codigo html
<HTML> <P> FORMA HTML PROG 17</P> <FORM ACTION=HTTP://PROGRAMACIONFACIL.COM:4080/tusitio/PROG17.ASP METHOD=POST> CLAVE<INPUT TYPE=TEXT NAME=clave><BR> <INPUT TYPE=SUBMIT VALUE=buscar> </FORM> </HTML>
nota: no hay nada nuevo, solo un input text para pedir la clave, aunque se puede usar cualquier campo para buscar
corrida prog17.html
codigo prog17.asp
<% @LANGUAGE = PerlScript %>
<%
# creando objetos conecciones y recordset de ado
$coneccion = $Server->CreateObject('ADODB.Connection');
$driver='Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\progfacil\lauro\mibase.mdb';
$coneccion->Open($driver);
$Rs=$Server->CreateObject('ADODB.RecordSet');
# en open tambien es valido usar un select de sql
$Rs->Open('mitabla', $coneccion, 1, 1);
# y los numeros son modos de usar open ver ado open
# cargar clave a buscar
$clave=$Request->Form('clave')->item;
# usando propiedad filter, para buscar
$Rs->{'Filter'} = "clave = $clave ";
if($Rs->EOF) { $Response->Write(" clave inexistente"); return; };
# tambien se puede con un select de sql
# $Rs = $coneccion->execute("SELECT * FROM mitabla WHERE clave = $clave");
# desplegar encabezados de columnas
$Response->Write ($Rs->Fields(0)->{Name} ." ");
$Response->Write ($Rs->Fields(1)->{Name} ." ");
$Response->Write ($Rs->Fields(2)->{Name} ." <br />");
# es un solo renglon pero se esta reutilizando codigo viejo
while(!$Rs->EOF) {
$Response->Write ($Rs->Fields(0)->{value} ." ");
$Response->Write ($Rs->Fields(1)->{value} ." ");
$Response->Write ($Rs->Fields(2)->{value} ." <br />");
$Rs->moveNext();
};
# cerrar y liberar recordset y coneccion
$Rs->Close;
$coneccion->Close;
undef $Rs;
undef $conneccion;
%>
notas:
1.- La primera parte es la comun en todos los programas, abrir enlaces, bases de datos y cargar el recordset.
2.- Despues cargar una variable clave con un request→form, esta variable queda cargada con el valor numerico de la clave
3.- Se usa la propiedad FILTER de recordset para crear una tabla que contiene el renglon apropiado
4.- Como se indica en el ejemplo, tambien se puede usar una clausula select de sql.
5.- Recordset de ADO tiene otros dos metodos llamados FIND y SEEK que se pueden usar para resolver este problema, y a quien lo resuelva con cualquiera de estos dos tienen bastantes puntos extras.
6.- Al final no olvidar cerrar y liberar todo.
Corrida prog17.asp
TAREAS PROGRAMACION PERLSCRIPT :
1.- hacer programas de busquedas para las bases hechas