Instalación FreeTDS + Perl DBI + Perl DBD Sybase Centos 64 bits | Setup FreTDS + Perl DBI + Perl DBD::Sybase over CentOS 64bits for SQLSERVER Integration

12 Feb

Instalando Freetds con perl DBD::sybase para realizar conexiones a SQL SERVER desde Perl, me encontré con un problema al realizar la instalación de los paquetes en CentOS 64bits, problemas de librerías, paquetes, rpm’s entre otros. La única forma en que pude resolverlos fue la siguiente.

Paquetes Necesarios
http://www.freetds.org/
http://www.cpan.org

Procedimiento

Para realizar la instalación de los paquetes debemos descargar el Freetds del Website en su versión estable con el comando wget como se muestra a continuación

wget url de descarga

Una vez descargado el paquete procedemos a compilarlo de la siguiente forma:

./configure --prefix=/usr/local/freetds --with-tdsver=7.0
make
make install

Una vez echo esto tendremos el driver de freetds instalado, ahora debemos configurarlo y probar que funciona. Para esto es necesario editar el fichero /usr/local/freetds/etc/freetds.conf Agregando el siguiente contenido.

try server login = yes
try domain login = no
[sql1]
host = ip_del_servidor_SQLSERVER
port = 1433
tds version = 8.0




Guardamos los cambios y ejecutamos el siguiente comando para asegurarnos que Freetds funciona.

 /usr/local/freetds/bin/tsql -S ip_del_servidor_SQLSERVER -U sqluser

Una vez comprobada la conexión es necesario instalar las librerías de Perl que nos permitirán crear los Scripts de conexión a SQL SERVER. Para ello necesitaremos instalar Perl::DBI y Perl::DBD::Sybase, que no debería tener problemas en instalarse por yum, cpan o compilado por fuentes, a excepción de los sistemas 64 bits donde instalaremos Perl::DBI por cualquier gestor de paquetes mientras que Perl::DBD::Sybase los instalaremos por fuentes.

Para ello descargaremos Perl::DBD::Sybase del siguiente Url: http://search.cpan.org/CPAN/authors/id/M/ME/MEWP/DBD-Sybase-1.09.tar.gz, y luego lo instalaremos de la siguiente forma:

export SYBASE=/usr/local/freetds
tar -zxvf DBD-Sybase-1.09.tar.gz
cd  DBD-Sybase-1.09

Ahora editamos el fichero dbdimp.c y agregamos las siguientes lineas antes de la funcion syb_init()

#undef CS_VERSION_150
#undef CS_VERSION_125
#undef CS_VERSION_120
#undef CS_DATE_TYPE
#undef CS_BIGINT_TYPE

Y luego procedemos a compilar la libreria normalmente

perl Makefile.PL
make
make install

Una vez realizado esto podremos probar con un script simple de Perl como el siguiente que todo funcione.

#!/usr/bin/perl

use DBI;

$dsn = 'DBI:Sybase:server=cambiar_ip_servidor';

my $dbh = DBI->connect($dsn, "usuario_SQLSERVER", 'contrasena_SQLSERVER');
die "unable to connect to server $DBI::errstr" unless $dbh;

$dbh->do("use Nombre_tabla");

$query = "SELECT * FROM TABLA_A_CONSULTAR";
$sth = $dbh->prepare ($query) or die "prepare failed\n";
$sth->execute( ) or die "unable to execute query $query   error $DBI::errstr";

$rows = $sth->rows ;
print "$row rows returned by query\n";

while ( @first = $sth->fetchrow_array ) {
       foreach $field (@first) {
print "campo: $field\n";
}
}

Vía: ibiblio.org PerlMonks

¿Quién es Rhommel Lamas?

Escribo en Talfin desde el 2006, soy un fanático de la libertad de expresión en todos sus sabores, fanboy, amante de la cultura libre, cloud computing, dispositivos móviles y de la vida en general. Emprendedor de corazón, y developer de Closet, me encantan los videojuegos, y conocer el mundo. También escribo en: Techironic mi Web Personal: Rhommell, me puedes encontrar también en Twitter: @rhoml y Facebook .

No te pierdas