UNIDAD 7: INTRODUCION A LAS BASES DE DATOS

TEMA PERL 7: CONSULTA O DESPLIEGUE O SELECCION

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 SELECCION, consulta o despliegue.

Como se indico anteriormente la comunicacion con la base de datos se tendran que dar usando el lenguaje especializado de bases de datos llamado SQL(structured query language), la instruccion sql que se usa para resolver este problema tiene el siguiente formato:

SELECT [listacampos, * o ALL] FROM TABLA;

El procedimiento que se intenta seguir cuando se construya un programa asp.net 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 el enlace y cargarlo con la instruccion sql

4.- Crear un arreglo y cargarlo

5.- Cargar un objeto table de html con el dataset

6.- Procesar el table de html (editar un renglon, agregar un renglon, modificar un renglon, etc)

7.- Cerrar la coneccion

prog40.pl

#! /usr/bin/perl -w
# usando modulo o libreria CGI
use CGI;
use DBI;
# creando el OBJETO de tipo CGI
$q = new CGI;
# mandando servidor los encabezados de la pagina html
print $q->header;
print $q->start_html();
# creando una form o ventana
print $q->startform();
# creando un submit button
print $q->submit('DESPLEGAR');
# cerrando la forma
print $q->endform();
#cerrando html
print $q->end_html;
if ( $q->param('DESPLEGAR')) {
print $q->hr();
# empezando una tabla html
print "<HTML><TABLE Border=10 CellPadding=5><TR>";
# construyendo los encabezados de la tabla
print "<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th><th bgcolor=blue>ESTATURA</th></TR>";
# creando enlace o coneccion dbh=>database handle
my $dbh = DBI->connect('DBI:mysql:mibase:localhost','USUARIO','PASSWORD')|| die "ERROR CONECCION : $DBI::errstr";
# preparando el query sql
# sth=>statement handle convencion mysql tambien
my $sth = $dbh->prepare('SELECT * FROM mitabla');
$sth->execute;
# ciclo de lectura de todos los renglones de la tabla
while ( my ($clave, $nombre, $edad, $estatura) = $sth->fetchrow_array() ) {
print "<TR><TD>"."$clave"."</TD><TD>"."$nombre"."</TD><TD>"."$edad"."</TD><TD>"."$estatura"."</TD></TR>";
};
# cerrando tabla, instruccion y coneccion
print "</TABLE>";
$sth->finish;
$dbh->disconnect();
print $q->hr();
};

corrida prog40.pl

image282.jpg

notas:

1.- revisar con cuidado el programa, proque como todo buen programa lleva incluida mucha documentacion o explicacion.

2.- Se sigue el procedimiento generico para procesar tablas

3.- Observar y siempre incluir los modulos USE CGI; USE DBI.

4.- Se empieza creando la forma, objetos y eventos normales para el programa.

5.- Se crea y carga una conneccion o enlace a la base de datos con la instruccion:

my $dbh = DBI→connect('DBI:mysql:mibase:localhost','USUARIO','PASSWORD')|| die “ERROR CONECCION : $DBI::errstr”;

$dhh ⇒ un convencion en perl dbi, que siginifica database handle (alias a base de datos)

DBI→connect() ⇒ Funcion del modulo DBI para enlazarse a la base de datos, sus argumentos o parametros son:

Primero DBI:mysql:LA BASE DE DATOS A CONECTARSE:localhost(este es el servidor de web donde se encuentra la base de datos.

El segundo parametro 'USUARIO' es el usuario de la base de datos y el tercer parametro 'PASSWORD' es el password para la base de datos.

6.- La siguiente instruccion prepara la instruccion SQL para mandarla a la base de datos:

my $sth = $dbh→prepare('SELECT * FROM mitabla')

observar que esta usando la variable $dbh que se cargo con la coneccion a la base de datos.

7.- La instruccion $sth→execute; se entiende que esta mandando o ejecutando la instruccion SQL a la base de datos.

8.- Luego se usa $sth→fetchrow_array() para leer el primer renglon de la tabla y se carga cada columna o dato del renglon al arreglo my ($clave, $nombre, $edad, $estatura).

9.- Se esta usando un ciclo while(fetchrow()) para leer todos los renglones de la tabla, fetchrow cada vez que lee un renglon regresa cuando renglones leyo y regresa undef o null cuando ya no encuentra renglones a leer, undef o null son suficientes para terminar o poner en falso el ciclo while.

10.- $sth→finish; $dbh→disconnect(); instrucciones que se usan para cerrar tanto la instruccion SQL($sth) como la coneccion o enlace ($dbh).

TAREAS PROGRAMACION PERL

1.- construir y desplegar una primera base de datos que contenga la primera tabla que disenaron en el TEMA PERL 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