From emhn at telcel.net.ve Fri Jun 22 07:36:48 2001 From: emhn at telcel.net.ve (Ernesto Hernandez-Novich) Date: Wed Aug 4 23:59:24 2004 Subject: Ejemplo con Bases de datos ? In-Reply-To: <01062120091701.01471@localhost.localdomain> Message-ID: 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 colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------