• Publicidad

Error en obtención de datos DBI

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Error en obtención de datos DBI

Notapor kaeri » 2007-08-02 11:53 @537

Hola a todos

Tengo un problema de obtención de datos con el módulo DBI, lo que me está pasando es que al obtener el valor e imprimirlo solo me imprime 255 caracteres, al realizar yo la consulta desde SQL Server sí me trae todo el asunto correcto, lo que estoy viendo es que cuando yo obtengo el valor con bind_col obtiene solamente 255. ¿Cómo obtengo todo el asunto completo?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$consultasql = "select folio,asunto fom asuntos";

$dbh = DBI->connect("dbi:Sybase:server=XXXXX",'XXX','XXX') or MiError($DBI::errstr);
    $sth = $dbh->do("use SECPAT") or MiError("DBI::errstr");
    $sth = $dbh->prepare($consultasql) or MiError($DBI::errstr);

    $sth->execute or MiError($DBI::errstr);

   my ($folio,$asunto);
   $sth->bind_col( 1, \$folio );
   $sth->bind_col( 2, \$asunto );
   
  while ($sth->fetch){
     print "$asunto";
  }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
kaeri
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2004-08-19 12:05 @545
Ubicación: México

Publicidad

Notapor monoswim » 2007-08-02 12:05 @545

Yo siempre usé el

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $hash =  $sth->fetchrow_hashref();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y nunca tuve problemas...

Pruébalo y dime...

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor explorer » 2007-08-02 12:23 @557

Hay varios errores en el código:

* En la sentencia SQL, es from, no fom.
* En la línea del do(), falta un '$' a DBI::errstr.

Aparte de eso, puedes forzar a que el valor devuelto sea de un determinado tipo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$sth->bind_col(2, \$asunto, { TYPE => SQL_VARCHAR });
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

pero sospecho que el fallo está en otro sitio. Prueba a realizar el fetch pero sin el bind.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kaeri » 2007-08-02 12:34 @565

Gracias por las respuestas.

Explorer:

Realicé lo que me indicas declarando
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$sth->bind_col(2, \$asunto, { TYPE => SQL_VARCHAR });
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

pero me sigue saliendo solamente 255 caracteres.

Con lo que me comentas al último, ¿qué bind debo quitar?
Avatar de Usuario
kaeri
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2004-08-19 12:05 @545
Ubicación: México

Notapor explorer » 2007-08-02 12:43 @571

Me refería a la forma de hacer la recuperación de datos, que en vez de hacer un bind/while/fetch, hacer un fetch_all...

De todas formas, he encontrado la solución a tu problema:
http://www.perlmonks.org/?node_id=559715
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kaeri » 2007-08-02 13:01 @584

Gracias Explorer, se ha resuelto el problema, se ha declarado la variable en la consulta de SQL a TEXT.
Avatar de Usuario
kaeri
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2004-08-19 12:05 @545
Ubicación: México


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados