Página 1 de 1

Conectar BD SYBASE 2

NotaPublicado: 2008-07-17 17:35 @774
por Kiloko
Saludos perleros, tengo un problema con un programa y creo que el error anda por ahí. ¿Me podrían echar la mano?

Yo tengo mis 2 programas
conectarsb.pm
uno.pl

El primero es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
package  conectarsb;
use strict;
use DBI;
# variables a editar
my $db_user = "usuario";
my $db_pass = "clave";
my $host_name = "la ip misterio";
my $db_name = "DB";
# vars
my $q_string = "DBI:sybase:host=$host_name;database=$db_name";
sub connect{
return (DBI->connect ($q_string, $db_user, $db_pass,
{PrintError => 0, RaiseError => 1}));
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Mi segundo programa:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use lib "/usr/lib";
use conectarsb;
use strict;
use DBI;
use DBD::Sybase;

my($dbh,$sth);
$dbh = ConectarDB->connect();

$sth = $dbh->prepare('SELECT tad.SerialNo, tn.LabelName, tan.AeName FROM tbl_AlarmData tad, tbl_AlarmName tan, tbl_Node tn WH
ERE tad.EqType = tan.EqType AND tad.AlarmType = tan.AeID ANDtn.NodeID = tad.NodeId; '
) or die("Couldn't prepare statement: "
. $dbh->errstr);
$sth->execute("perl") or die("Couldn't execute statement: " . $sth->errstr);
my $fecha = $sth->fetchrow_array();
$sth->finish;
 $dbh->disconnect;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Y me sale el error.

Código: Seleccionar todo
Can't locate loadable object for module DBI in @INC (@INC contains: /usr/lib /usr/perl5/5.00503/sun4-solaris /usr/perl5/5.00503 /usr/perl5/site_perl/5.005/sun4-solaris /usr/perl5/site_perl/5.005 .) at /usr/t2000/aortegam/bin/lib/DBI.pm line 263


¿Alguna idea de lo que esté pasando?

Por cierto, ¿alguien sabe cómo trabaja la inserción de base de datos en sybase para el tiempo? Porque por ejemplo en mi campo de tiempo aparece 114557611 y ese dato lo tengo que transformar en 2008-07-17 16:39:57 pero no tengo ni idea de cual sería la llave para hacer esto. ¿Alguien tiene una idea?

Saludos.

NotaPublicado: 2008-07-18 07:54 @370
por explorer
¿Dónde está definido 'ConectarDB' en el segundo programa?

NotaPublicado: 2008-07-21 13:56 @622
por Kiloko
:?
mismo error.

Código: Seleccionar todo
Can't locate DBI.pm in @INC (@INC contains: /usr/t2000/aortegam/bin/lib /usr/perl5/5.00503/sun4-solaris /usr/perl5/5.00503 /usr/perl5/site_perl/5.005/sun4-solaris /usr/perl5/site_perl/5.005 .) at conectarsb.pm line 4.
BEGIN failed--compilation aborted at conectarsb.pm line 4.
BEGIN failed--compilation aborted at dos.pl line 3.

NotaPublicado: 2008-07-21 14:22 @640
por explorer
El error es claro: no está instalado DBI o Perl no sabe dónde está.

NotaPublicado: 2008-07-21 15:01 @668
por Kiloko
Efectivamente, mi buen explorer, pero el problema es que el equipo está algo cerrado, por lo que no se puede instalar bien Perl. Y por ende, los módulos. Opté por crear una carpeta y poner ahí los *.pm necesarios pero por lo visto no fue suficiente, así que en vez de eso estoy extrayendo la información de esta manera
Código: Seleccionar todo
bcp iDB.dbo.tbl_Node out /tmp/node.txt -t~ -c -U sa -P -SDBServer


Lo que hace esta línea es guardarme la tabla en el archivo node.txt el cual después voy a filtrar con Perl para sacar la información que necesito porque nada más no pude hacer correr el query por Perl, incluso traté con el módulo que propone DBI.pm (pereperl.pm), pero nada.