Ejemplo con Bases de datos ?
Ernesto Hernandez-Novich
emhn at telcel.net.ve
Fri Jun 22 07:36:48 CDT 2001
On Thu, 21 Jun 2001, Fragger wrote:
> ¿Cuales serian las cualidades de un programa de manejo de SQL con Perl y no
> con C/C++? ¿Es mas rapido?¿Facil?.
>
- Conciso.
- Funciona con cualquier base de datos si te limitas a utilizar SQL
standard.
- Puedes usar stored procedures/triggers.
- Múltiples conexiones a diferentes bases de datos simultáneamente.
- Te ahorras el manejo de los cursores.
- Usas siempre drivers nativos hacia las bases de datos, y no la lentitud
y limitación de ODBC.
Hazlo más corto en C++, porque más rápido es difícil... y no necesitas
compilar/enlazas para probar. De paso, en Perl lo podemos hacer más
corto todavía ;-)
"El usuario debe indicar el código numérico del cliente a buscar. El
código 0 indica terminar el programa. Un código no numérico debe ser
ignorado. Mostrar codigo, nombre y dirección del cliente. Un cliente
puede tener varias direcciones asociadas al mismo código."
#!/usr/bin/perl -w
use DBI;
my $db = DBI->connect("dbi:Pg:dbname=clientes","usuario","password");
my $query = $db->prepare( q{ select code,name,addres
from clients where code = ? } );
while ($code = <>) {
chomp $code ;
last unless $code;
next unless $code =~ /^\d+$/;
$query->execute($code);
while (($c,$n,$d) = $query->fetchrow_array) {
print "Codigo: $c Nombre: $n Direccion: $d\";
}
}
$query->finish;
$db->disconnect;
El código no tiene recuperación en caso de errores, pero se haría con
manejo de excepciones como en C++, así que la complejidad es comparable.
Y para los perl mongers está claro que no hace falta ni siquiera usar las
variables $code, $c, $n, ni $d... pero es un ejemplo "introductorio".
Digamos que tengo la misma base de datos en Oracle, entonces cambio "Pg"
por "Oracle" y _listo_. ¿Era MySQL, entonces pongo "mysql"? ¿No tienes
una base de datos relacional? DBI la puede simular con archivos DBM y/o
de _texto_.
Busca el módulo DBI y el DBD apropiado para tu(s) base(s) de datos en
uso; todo está en www.perl.com en el CPAN.
--
Ernesto Hernández-Novich - Running Linux 2.4.5 i686 - Unix: Live free or die!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/E d+(++) s+: a C+++$ UBLAVHIOSC*++++$ P++++$ L+++$ E- W+ N++ o K++ w--- O-
M- V PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G++ e++ h r++ y+
-----END GEEK CODE BLOCK-----
------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------
More information about the caracas-pm
mailing list