• Publicidad

Limitación de 255 caracteres en el módulo de DBI

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Limitación de 255 caracteres en el módulo de DBI

Notapor Txipo » 2019-11-25 07:02 @335

Buenos días.

Espero que sea este el sitio para comenzar este hilo... Si no es así presento mis disculpas de antemano. :wink:

De primeras avisar que soy nuevo en la programación Perl y que quizás me cuele en la terminología que se usa... pero básicamente, me gustaría saber si es posible aumentar el número de caracteres que se recuperan al atacar a una BD de SQL Server desde nuestros scripts de Perl, usando el módulo de DBI.

La conexión la realizo de la siguiente manera:
$db_conex = DBI->connect("DBI:Sybase:xxxx:server=".$srv,$user,$pass,) or print LOG "No puedo conectar con el servidor xxx\n";

Sentencia:
$qry="SELECT campo1,campo2,campo3
FROM xxx..nombre_tabla;

Prepare:
my $st=$db_conex ->prepare($qry) or print LOG "Ha fallado el prepare de la query de recogida\n";

Ejecucion:
$st->execute();

Me está recuperando la información correctamente si el rango de caracteres de los campos es corto, el problema comienza cuando el contenido del campo es de un rango superior a 255 caracteres.

¿Es este rango configurable en el módulo DBI?

Un saludo a todos y gracias de antemano por vuestra ayuda.
Última edición por Txipo el 2019-11-26 05:48 @283, editado 1 vez en total
Txipo
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2019-11-25 06:20 @305

Publicidad

Re: Limitación de 258 caracteres en el módulo de DBI

Notapor explorer » 2019-11-25 08:10 @382

Bienvenido a los foros de Perl en Español, Txipo.

Cambia

DBI->connect('dbi:Sybase:host=127.0.0.1;port=1433')

por

DBI->connect('dbi:Sybase:server=MSSQL')

teniendo en el archivo ~/etc/freetds.conf esto:

[MSSQL]
host = 127.0.0.1
port = 1433
tds version = 8.0

(Información que he sacado desde aquí. Lo más seguro es que después de 13 años haya más información. Si estás usando el cliente de TDS debes asegurarte que es una versión 7.0 o superior).
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

Re: Limitación de 258 caracteres en el módulo de DBI

Notapor Txipo » 2019-11-25 10:03 @460

¡¡¡Muchísimas gracias, explorer!!!

Me está extrayendo toda la información del campo. :D :D :D :D :D

Por curiosidad, ¿sabrías explicarme qué es lo que estoy realizando con estos cambios?

¿Cuál es la diferencia entre tirar del archivo de configuración o llamar a la BD directamente desde el conector?

Si he preguntado alguna barbaridad mil disculpas que hablo desde la absoluta ignorancia. :oops:
Txipo
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2019-11-25 06:20 @305

Re: Limitación de 258 caracteres en el módulo de DBI

Notapor explorer » 2019-11-25 13:33 @606

Pues... yo tampoco estoy tan seguro... por lo que he leído en esas dos páginas, se trata de un problema de versiones de la biblioteca TDS, o sea, que hay un bug en las versiones viejas. Así que supongo que le estamos diciendo a Sybase que acceda con una versión de protocolo más moderna.
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

Re: Limitación de 258 caracteres en el módulo de DBI

Notapor Txipo » 2019-11-26 02:36 @150

¡Muchísimas gracias, explorer, por todo! Sí por la rapidez con la que me has contestado y la solvencia de tus respuestas.

Porque es la primera vez que me ayudas directamente, pero me has ayudado mucho indirectamente en mi inicio en el mundo del Perl.

Con gente como tu es fácil trabajar. :D :D :D
Txipo
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2019-11-25 06:20 @305


Volver a Básico

¿Quién está conectado?

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