PERLSCRIPT UNIDAD 5: INTRODUCION A LAS BASES DE DATOS

TEMA 7: CONSULTA O DESPLIEGUE

Existen una serie de operaciones y procesos que son muy comunes contra una tabla en una base de datos en disco, la mas comun es desplegar todos los renglones de la tabla que estan almacenados en disco, a este proceso le llamaremos consulta o despliegue (muy original).

El procedimiento que se intentara seguir cuando se construya un programa asp que tenga que manipular una tabla en disco, debera seguir los siguientes pasos:

1.- Crear una coneccion o enlace a la base de datos.

2.- Abrir la coneccion a la base de datos.

3.- Crear un RECORDSET

4.- Abrir o cargar el Recordset

5.- Procesar el Recordset ( aqui y en este momento es donde se manipulan los datos ya sea despliegue, eliminacion, edicion, etc)

6.- Cerrar y liberar el Recordset

7.- Cerrar y liberar la coneccion o enlace a la base de datos.

Codigo prog15.html

<HTML> <P> FORMA HTML prog15</P>
<FORM ACTION=http://programacionfacil.com:4080/tusitio/prog15.asp METHOD=POST>
desplegar toda la base
<BR><INPUT TYPE=SUBMIT VALUE=desplegar>
</FORM></HTML>

corrida prog15.html

image163.jpg

programa15.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);
# construyendo una tabla html para desplegar el recordset
$Response->Write('<TABLE Border=1 CellPadding=5><BR><TR>');
# primero usar count propiedad de RECORDSET para cantidad de columnas
$col = $Rs->Fields->{Count};
# desplegar los encabezados de las columnas
# observar que se usa propiedad name de fields
for ( $ren = 0; $ren < $col; $ren++ )
{
$Response->Write('<TD><B>');
$Response->Write($Rs->Fields($ren)->{Name});
$Response->Write('</B></TD>');
};
$Response->Write('</TR>');
# usar propiedad EOF del Recordset para desplegar el resto de renglones
# recordar que while circula entre los renlones del Recordset
while ( ! $Rs->{EOF} )
{ $Response->Write('<TR>');
# for circula por las columnas del recordset
# observar que se usa ahota propiedad value de fields
for ( $ren = 0; $ren < $col; $ren++ )
{$Response->Write('<TD>'.$Rs->Fields($ren)->{Value}.'</TD>'); };
$Response->Write('</TR>');
$Rs->MoveNext;
};
$Response->Write('</TABLE>');
# cerrar y liberar recordset y coneccion
$Rs->Close;
$coneccion->Close;
undef $Rs;
undef $conneccion;
%>

notas:

1.- Se sigue el procedimiento generico para procesar tablas usando ADO's en perlscript.

2.- Tomar mota como se hace una referencia a la base de datos, esto es open c:\progfacil\tusitio\base.mdb

3.- Cuando se abre la tabla en disco (RS→OPEN) el parametro entre apostrofes debera ser el nombre de la tabla, seguida del objeto enlace o coneccion que le indica en donde se encuentra.

Recordar que esta Instruccion RS→OPEN tambien carga el RECORDSET.

4.- Como se va a desplegar los datos en una tabla.html, se empieza construyendo esta ultima(la tabla html).

5.- RECORDSET tiene varias caracteristicas:

5.1.- Primero hay un apuntador interno que esta circulando por todos los renglones del recordset

5.2.- El primer renglon del recordset (renglon 0), tiene cargado el nombre de los campos.

5.3.- Tambien la primera columna (FIELD) es la cero.

5.4.- Existen dos caracteres especiales y muy utiles para procesar el recordset, ellos son BOF (before of file) y EOF (end of file).

5.5.- Recordar que existen muchas propiedades y metodos de RecordSet( ver apendice a final de PERLSCRIPT UNIDAD ) de las cuales se usan algunas como COUNT, MOVENEXT, etc.

6.- Cuando se creo el recordset el apuntador de renglones quedo apuntando al renglon cero en el recordset este renglon cero tiene almacenado los nombres de las columnas(clave, nombre, edad)

Para desplegarlos usamos un ciclo for, que para nuestro ejemplo debiera ser for col= 0 to 2 (recordar que la primera columna es la cero), pero es mejor usar la propiedad COUNT-1 o < COUNT de FIELDS, para que sea perlscript quien la calcule y ademas ustedes empiezen a practicar algunos metodos de estos objetos ADO.

7- Despues se esta usando un ciclo while Rs→EOF para procesar o pasearnos por todos los renglones de la tabla.

Para movernos de renglon a renglon usamos un RS→movenext al final del while.

8.- Tambien dentro del while, estamos usando un ciclo for, para ir procesando(desplegando) cada columna o field del renglon.

Otra vez, el while es para movernos de renglon a renglon y el for es para movernos de columna a columna.

9.- Al final cerramos la tabla y el enlace o coneccion y destruimos los objetos coneccion y recordset en el servidor.

10.- Observar que field→name nos regresa los nombres de las columnas y field→value los valores o datos de esas columnas.

Corrida prog15.asp:

image164.jpg

TAREAS PROGRAMACION PERL SCRIPT :

1.- construir y desplegar una primera base de datos que contenga la primera tabla que disenaron en el tema de tablas.

2.- Construir una segunda base de datos que contenga cuando menos tres de las tablas ya disenadas y desplegar cualquiera de ellas usando una sola forma html, donde el usuario selecciona cual quiere desplegar.

Politica de Privacidad