• Publicidad

Conectar Perl con MS Access

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

Conectar Perl con MS Access

Notapor hugo11ab » 2007-07-18 13:44 @614

Hola que tal, la duda que tengo es de cómo conectarme Perl desde un servidor Linux a MS Access (Windows). Ya he buscado en Internet y no encuentro la manera de cómo interactuar Perl con Access.

Muchas Gracias
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Publicidad

Notapor explorer » 2007-07-18 15:47 @699

El problema es que en Linux es complicado tener un controlador ODBC adecuado. Aparte de algunos proyectos comerciales, uno que está disponible en CPAN es el unixODBC.

Tienes más información en otro hilo de este foro.

Yo creo que vas a tardar menos pasando la base de datos a MySQL y metiendola toda en el Linux. Ganarás en comodidad, velocidad y fiabilidad.
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

Conexión de Perl con Access

Notapor hugo11ab » 2007-07-18 17:55 @788

Te agradezco mucho tu ayuda. El problema que tengo es el siguiente, estoy implementando un sistema para el control de faltas, para esto se compro un sw con un dispositivo de huella digital para registrar la entrada y salida de los trabajadores. El problema que es que ese sw almacena toda la información en una base de datos de Access. Mi idea era conectar Perl desde Linux a la base de datos de Access y así traerme la información y migrarla a la base de Postgres (montada en Linux).

Si tienes alguna idea de como hacerle te lo agradecería mucho.
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Notapor explorer » 2007-07-18 19:52 @869

Se me ocurre entonces lo siguiente:

Instala el Perl en el ordenador donde se crea la base de datos, que será un Windows. Luego vas al panel de control, a la herramienta que gestiona las conexiones ODBC, y miras a ver cuál es el DSN de acceso a esa base de datos. Si no lo tiene, creas uno.

Luego, haces un programa que use el módulo DBI. Al usar un DSN que accede a una base de datos ODBC, DBI intentará usar el módulo DBD::ODBC. Si no está instalado, pues lo instalas.

Una vez hecho eso, ya puedes hacer el programa como quieras, para leer la base de datos. O puedes volcarla a un formato intermedio y luego se la pasas al PostgreSQL con otro programa.

Quizás lo más divertido sería que el PostgreSQL admitiese conexiones externas a través de un puerto, pues entonces desde el mismo programa en Windows que extrae información de la base de datos Access, haríamos las consultas de actualización de la base de datos destino. Así, nos ahorramos el volcado-transporte-volcado de los datos.

Quedaría solo pendiente el caso de resolver el tema en los cortes de conexión entre las dos máquinas.

Más ideas...
* Ejemplo de acceso usando el driver directo de Microsoft con el módulo Win32::ODBC.
* Otro acceso aún más directo, definiendo en DSN el camino directo al fichero mdb (ver último comentario de la página).
* Accesos con DBI y con Win32::OLE.
* Otra página donde comentan el mismo caso que el tuyo.
* Aquí hay una configuración interesante, y recomiendan el uso de las mdbtools.
* Hay más resultados buscando en la página de perlmonks.org, en la sección Super Search, buscando por las palabras access y mdb.
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 hugo11ab » 2007-07-19 11:46 @532

Agradesco mucho tu ayuda, voy a intentar hacer lo que propones.
Muchas Gracias
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016


Volver a Intermedio

¿Quién está conectado?

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