• Publicidad

Conexión con DB2

¿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.

Notapor explorer » 2009-02-24 12:23 @557

Debes cambiar /home/inst1/sqllib por el lugar donde has instalado DB2 en tu sistema. /home/inst1/sqllib es un EJEMPLO, que no tiene por qué coincidir con tu instalación de DB2.

En el export, debes indicar el camino a ese directorio. Lo principal es que luego en $DB2_HOME/include encuentres los ficheros cabecera, porque ese es el error que te da: make no encuentra esos ficheros porque no le has dicho dónde están. O se lo has dicho mal.
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

Publicidad

Notapor piero66 » 2009-02-24 12:50 @577

¿A que te refieres con esto?

Debes cambiar /home/inst1/sqllib por el lugar donde has instalado DB2 en tu sistema. /home/inst1/sqllib es un EJEMPLO, que no tiene por qué coincidir con tu instalación de DB2.

¿A la ubicación donde bajé la librería?

Bueno eso te entendí... y los pasos que seguí fueron estos:
bajé en esta ruta la librería: /home/inst1/sqllib/

Después ejecuté la siguientes instrucciones así tal cual...

con usuario root
1.- /home/inst1/sqllib> tar -xf DBD-DB21.6.tar.tar
2.- /home/inst1/sqllib> export DB2_HOME=/home/inst1/sqllib/DBD-DB2-1.6


cambié a usuario diferente de root
3.- /home/inst1/sqllib/DBD-DB2-1.6>su usuario4.- /home/inst1/sqllib/DBD-DB2-1.6>perl Makefile.pl
mando el siguiente mensaje....

Código: Seleccionar todo
Configuring DBD::DB2...
Remember to actually read the README and CAVEATS files!

Using DB2 in "/home/inst1/sqllib/DBD-DB2-1.6"
System: perl5.008008 DBI1.53 linux builder6.centos.org 2.6.9-42.0.3.elsmp #1 smp fri oct 6 06:28:26 cdt 2006 x86_64 x86_64 x86_64 gnulinux  x86_64-linux-thread-multi dl_dlopen.xs
Compiler: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
Includes: -I"/home/inst1/sqllib/DBD-DB2-1.6/include" -I"/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI" -I"/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI"
Libraries: -L/home/inst1/sqllib/DBD-DB2-1.6/lib -ldb2

Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for -ldb2
Checking if your kit is complete...
Looks good
Writing Makefile for DBD::DB2::Constants
Writing Makefile for DBD::DB2


5.- /home/inst1/sqllib/DBD-DB2-1.6>make

Código: Seleccionar todo
cp DB2.pm blib/lib/DBD/DB2.pm
cp lib/Bundle/DBD/DB2.pm blib/lib/Bundle/DBD/DB2.pm
cp DB2.pod blib/lib/DBD/DB2.pod
make[1]: se ingresa al directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
cp Constants.pm ../blib/lib/DBD/DB2/Constants.pm
AutoSplitting ../blib/lib/DBD/DB2/Constants.pm (../blib/lib/auto/DBD/DB2/Constants)
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap  Constants.xs > Constants.xsc && mv Constants.xsc Constants.c
gcc -c  -I"/home/inst1/sqllib/DBD-DB2-1.6/include" -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.6\" -DXS_VERSION=\"1.6\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"   Constants.c
Constants.xs:16:20: error: sqlcli.h: No existe el fichero o el directorio
Constants.xs:18:21: error: sqlcli1.h: No existe el fichero o el directorio
make[1]: *** [Constants.o] Error 1
make[1]: se sale del directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
make: *** [subdirs] Error 2


¡¡ Muchas gracias de antemano !!
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Notapor explorer » 2009-02-24 12:58 @582

Te sigue faltando el paso del export, que apunte al lugar donde tienes instalado DB2.

Cuando digo librería y ficheros cabecera, me refiero a los del directorio del DB2, ->NO<- al del DBD-DB2.

Actualización: no entiendo porqué cambias de usuario para hacer este trabajo de instalación. Lo normal es que tengas que hacerlo todo siendo root.
Última edición por explorer el 2009-02-24 13:02 @584, editado 1 vez en total
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 piero66 » 2009-02-24 13:00 @583

Pues esta instrucción, ¿no?

Código: Seleccionar todo
2.- /home/inst1/sqllib> export DB2_HOME=/home/inst1/sqllib/DBD-DB2-1.6
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Notapor explorer » 2009-02-24 13:03 @585

QUE NOOOOOOOOOOOOO.

VUELVE A LEER, con calma:

Es el directorio donde está DB2, -> NO <- donde está DBD-DB2.

Actualización: El mensaje en inglés es:

Código: Seleccionar todo
When compiling the DBD::DB2 driver and you see errors such
as the following:

sqlcli.h: No such file or directory
sqlc1l1.h: No such file or directory
sqlext.h: No such file or directory

This usually means that you are not in a properly configured
DB2 client shell.
que quiere decir
Código: Seleccionar todo
Cuando compile el controlador DBD::DB2 y vea errores como los siguientes:

sqlcli.h: No existe fichero o directorio
sqlc1l1.h: No existe fichero o directorio
sqlext.h: No existe fichero o directorio

Significa normalmente que no está en un cliente shell configurado apropiadamente con DB2.

O dicho de otra manera: entre las variables de entorno del shell no hay ninguna relativa a DB2, que indiqué dónde están las cabeceras de compilación.

Por eso necesitamos poner a mano, con export, la variable DB2_HOME, al directorio donde DB2 está instalado, para que el make pueda luego unir las cabeceras a la compilación de DBD-DB2.
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 piero66 » 2009-02-24 13:41 @612

Ya te desesperé... verdad, perdón.,. jejeje :oops: , mira, omití, una información muy grande... yo me quiero conectar desde mi servidor CentOS v5, mediante Perl, a una base de datos DB2 de IBM que esta en otro servidor SUSE 9, allá sí ubico la ruta de DB2, pero en mi servidor, donde quiero hacer la conexión, ¡¡¡no existe tal carpeta!!!... entonces opté por dos opciones...

1.- instalar y configurar un ODBC para IBM
o
2.- una librería que me conecte a esa BD2 de ese servidor SUSE...

La segunda opción me parecía más fácil... aunque sigo investigando la opción 1 también...

Ahora sí ya creo puedes entenderme más...

Mi servidor de aplicaciones CentOS v5... tiene PostGreSQL y me conecto sin problema... mi bronca es conectarme a otro servidor con DB2 de IBM...

Creo que desde ahí hubiera empezado, verdad... la verdad que pena ¡¡ eh !! :oops: , pero créeme que he aprendido mucho aquí... :oops: imagínate antes como estaba... :oops: :cry:

eres mi mayor esperanza Explorer, espero me ayudes,, :oops:
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Notapor piero66 » 2009-02-27 10:27 @477

Listo, ya pude conectarme... y aquí dejo lo que tuve que hacer; espero que a alguien más le sirva...

Primeramente tienes que bajar un cliente DB2: http://www-01.ibm.com/support/docview.w ... wg21255390
(es por eso que yo no podía instalar esa librería porque carecía de esa ruta que me crea esa instalación)

Después de eso, ya apliqué los pasos... que me indica el archivo CAVEATS:
Código: Seleccionar todo
Export DB2_HOME= ruta que te crea la instalacion del cliente DB2
make
make test
make install


y listo... espero le sirva a alguien más...

Gracias, explorer, de alguna manera sabía con lo que me decías que tenía que instalar alguna otra cosa... no sabía qué... pero al fin clavándome otro día... ¡¡se pudo!! Si te enconaste... lo siento, es pura y mera inexperiencia :oops:
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Notapor explorer » 2009-02-27 13:42 @612

Aquí estamos para aprender todos.

Tu has aprendido a instalar DBD::DB2.

Y yo, gracias a tu problema, he aprendido eso y el verbo enconar. ;)
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 piero66 » 2009-03-02 14:14 @635

¡¡ Hola !! de nuevo por acá...

Disculpa, explorer... todo lo anterior lo ejecuté en un servidor de prueba Suse 9, y todo perfecto...

Ahora trato de hacer los mismo para un CentOS v5... que es en el que va a quedar la aplicación, y para empezar tuve que descargar otro cliente de DB2, y ya lo instalé todo bien... caray, mis problemas comienzan donde quiero instalar la librería DBD::DB2...

Ya cuando ejecuto el make checa todos los errores que me da....

Código: Seleccionar todo
cp DB2.pm blib/lib/DBD/DB2.pm
cp lib/Bundle/DBD/DB2.pm blib/lib/Bundle/DBD/DB2.pm
cp DB2.pod blib/lib/DBD/DB2.pod
make[1]: se ingresa al directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
cp Constants.pm ../blib/lib/DBD/DB2/Constants.pm
AutoSplitting ../blib/lib/DBD/DB2/Constants.pm (../blib/lib/auto/DBD/DB2/Constants)
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap  Constants.xs > Constants.xsc && mv Constants.xsc Constants.c
gcc -c  -I"/opt/ibm/db2/V9.1/include" -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.6\" -DXS_VERSION=\"1.6\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"   Constants.c
Constants.xs:25: aviso: se definió ânot_hereâ pero no se usa
Running Mkbootstrap for DBD::DB2::Constants ()
chmod 644 Constants.bs
rm -f ../blib/arch/auto/DBD/DB2/Constants/Constants.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Constants.o  -o ../blib/arch/auto/DBD/DB2/Constants/Constants.so        \
                \

chmod 755 ../blib/arch/auto/DBD/DB2/Constants/Constants.so
cp Constants.bs ../blib/arch/auto/DBD/DB2/Constants/Constants.bs
chmod 644 ../blib/arch/auto/DBD/DB2/Constants/Constants.bs
make[1]: se sale del directorio `/home/inst1/sqllib/DBD-DB2-1.6/Constants'
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap  DB2.xs > DB2.xsc && mv DB2.xsc DB2.c
gcc -c  -I"/opt/ibm/db2/V9.1/include" -I"/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI" -I"/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI" -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.6\" -DXS_VERSION=\"1.6\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"   DB2.c
DB2.xs: En la función âXS_DBD__DB2__st_executeâ:
DB2.xs:361: aviso: el formato â%ldâ espera el tipo âlong intâ, pero el argumento 5 es del tipo âintâ
DB2.c: En la función âXS_DBD__DB2__st_fetchrow_arrayrefâ:
DB2.c:570: aviso: variable âixâ sin usar
DB2.c: En la función âXS_DBD__DB2__st_fetchrow_arrayâ:
DB2.c:589: aviso: variable âixâ sin usar
DB2.xs: En la función âXS_DBD__DB2__st_cancelâ:
DB2.xs:426: aviso: declaración implícita de la función âdbd_st_cancelâ
DB2.c: En el nivel principal:
dbdimp.h:148: aviso: âdiagnoseErrorâ se declaró âstaticâ pero nunca se definió
dbdimp.h:149: aviso: âsetErrorFromDiagRecInfoâ se declaró âstaticâ pero nunca se definió
dbdimp.h:150: aviso: âsetErrorFromStringâ se declaró âstaticâ pero nunca se definió
gcc -c  -I"/opt/ibm/db2/V9.1/include" -I"/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI" -I"/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI" -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.6\" -DXS_VERSION=\"1.6\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"   dbdimp.c
dbdimp.c: En la función âsetErrorFromDiagRecInfoâ:
dbdimp.c:92: aviso: el puntero que apunta en la asignación difiere en signo
dbdimp.c:111: aviso: el puntero que apunta en el paso del argumento 6 de âimp_xxh->com.std.dbistate->set_err_charâ difiere en signo
dbdimp.c: En la función âdbd_db_connectâ:
dbdimp.c:321: aviso: el puntero que apunta en el paso del argumento 1 de âstrstrâ difiere en signo
dbdimp.c:322: aviso: el puntero que apunta en el paso del argumento 1 de âstrlenâ difiere en signo
dbdimp.c:323: aviso: el puntero que apunta en el paso del argumento 1 de âstrstrâ difiere en signo
dbdimp.c:323: aviso: el puntero que apunta en el paso del argumento 1 de âstrstrâ difiere en signo
dbdimp.c:324: aviso: el puntero que apunta en el paso del argumento 1 de âstrlenâ difiere en signo
dbdimp.c:324: aviso: el puntero que apunta en el paso del argumento 1 de âstrlenâ difiere en signo
dbdimp.c:324: aviso: el puntero que apunta en el paso del argumento 1 de âstrlenâ difiere en signo
dbdimp.c:325: aviso: el puntero que apunta en la asignación difiere en signo
dbdimp.c:327: aviso: el puntero que apunta en el paso del argumento 1 de â__builtin___sprintf_chkâ difiere en signo
dbdimp.c: En la función âdb2_db_STORE_attribâ:
dbdimp.c:756: aviso: el formato â%sâ espera el tipo âchar *â, pero el argumento 5 es del tipo âSQLPOINTERâ
dbdimp.c: En la función âdb2_describeâ:
dbdimp.c:953: aviso: variable ât_cbuflâ sin usar
dbdimp.c: En la función âdb2_st_table_infoâ:
dbdimp.c:1371: aviso: el puntero que apunta en la inicialización difiere en signo
dbdimp.c:1372: aviso: el puntero que apunta en la inicialización difiere en signo
dbdimp.c: En la función âdb2_st_primary_key_infoâ:
dbdimp.c:1481: aviso: el puntero que apunta en el paso del argumento 2 de âSQLPrimaryKeysâ difiere en signo
dbdimp.c:1481: aviso: el puntero que apunta en el paso del argumento 4 de âSQLPrimaryKeysâ difiere en signo
dbdimp.c:1481: aviso: el puntero que apunta en el paso del argumento 6 de âSQLPrimaryKeysâ difiere en signo
dbdimp.c: En la función âdb2_st_foreign_key_infoâ:
dbdimp.c:1564: aviso: el puntero que apunta en el paso del argumento 2 de âSQLForeignKeysâ difiere en signo
dbdimp.c:1564: aviso: el puntero que apunta en el paso del argumento 4 de âSQLForeignKeysâ difiere en signo
dbdimp.c:1564: aviso: el puntero que apunta en el paso del argumento 6 de âSQLForeignKeysâ difiere en signo
dbdimp.c:1564: aviso: el puntero que apunta en el paso del argumento 8 de âSQLForeignKeysâ difiere en signo
dbdimp.c:1564: aviso: el puntero que apunta en el paso del argumento 10 de âSQLForeignKeysâ difiere en signo
dbdimp.c:1564: aviso: el puntero que apunta en el paso del argumento 12 de âSQLForeignKeysâ difiere en signo
dbdimp.c: En la función âdb2_st_column_infoâ:
dbdimp.c:1632: aviso: el puntero que apunta en el paso del argumento 2 de âSQLColumnsâ difiere en signo
dbdimp.c:1632: aviso: el puntero que apunta en el paso del argumento 4 de âSQLColumnsâ difiere en signo
dbdimp.c:1632: aviso: el puntero que apunta en el paso del argumento 6 de âSQLColumnsâ difiere en signo
dbdimp.c:1632: aviso: el puntero que apunta en el paso del argumento 8 de âSQLColumnsâ difiere en signo
dbdimp.c: En la función âdb2_bind_phâ:
dbdimp.c:2052: aviso: variable âimp_dbhâ sin usar
dbdimp.c: En la función âdb2_st_fetchâ:
dbdimp.c:2439: aviso: variable âimp_dbhâ sin usar
dbdimp.c: En la función âdb2_st_blob_readâ:
dbdimp.c:2624: aviso: variable âimp_dbhâ sin usar
dbdimp.c: En la función âdbd_st_cancelâ:
dbdimp.c:2689: aviso: variable âimp_dbhâ sin usar
dbdimp.c: En la función âdb2_st_finishâ:
dbdimp.c:2708: aviso: variable âimp_dbhâ sin usar
dbdimp.c: En la función âdb2_describeâ:
dbdimp.c:966: aviso: puede ser que se utilice âdb_codepageâ sin inicializar en esta función
dbdimp.c:965: aviso: puede ser que se utilice âapp_codepageâ sin inicializar en esta función
Running Mkbootstrap for DBD::DB2 ()
chmod 644 DB2.bs
rm -f blib/arch/auto/DBD/DB2/DB2.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic DB2.o dbdimp.o   -o blib/arch/auto/DBD/DB2/DB2.so       \
           -L/opt/ibm/db2/V9.1/lib64 -ldb2      \

chmod 755 blib/arch/auto/DBD/DB2/DB2.so
cp DB2.bs blib/arch/auto/DBD/DB2/DB2.bs
chmod 644 blib/arch/auto/DBD/DB2/DB2.bs
Manifying blib/man3/Bundle::DBD::DB2.3pm
Manifying blib/man3/DBD::DB2.3pm


Lo que pienso es que tal vez no referencio bien la ubiciacion...

Según pienso yo mi ubicación es...

/opt/ibm/db2/V9.1

que es según esto donde se ubicó mi cliente DB2 pero me vota esos errores... ¿¿¿¿ tu a qué crees que se deba...????

¡¡ Espero me puedas ayudar de new !!
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Notapor explorer » 2009-03-02 16:06 @712

Yo no veo ningún error... al final, te coloca el módulo DBD::DB2 en el sitio de instalación. Solo te faltaría hacer el test y el install.
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

AnteriorSiguiente

Volver a Intermedio

¿Quién está conectado?

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