El Sun, 30 Jun 2002 12:45:08 +0200
"mandel"
Tengo necesidad de pasar datos dBase a MySQL. Hasta ahora lo he conseguido a medias porque los pasaba a Access y luego a MySQL pero se quedaban algunos registros en el camino. Parece ser que la solución es pasarlos vía ODBC. El problema es que nunca que hecho nada similar y buscando con Google no he encontrado nada que me saque de dudas. ¿Me podrías ayudar?. Sería suficiente con que me indiques un manual o tutorial que trate del tema.
La verdad que pasarlos via ODBC no es la unica forma. Tenes varios programas y lenguajes de programacion que permiten, de una forma u otra, acceder tanto a bases xBase como a MySQL, y de esa forma hacer la conversion. Lo que YO use, principalmente porque me gusta el lenguaje, es Perl, que cuando te instalas las librerias para acceder a archivos xbase te deja un ejecutable que te hace un "dump" de la base de datos, en esencia un archivo de texto que tendria el contenido de un list del dbase, luego con perl mismo lo que hice fue leer linea a linea ese archivo y grabarme otro de texto, conteniendo insert into base (campo1, campo2, ...) values ("valor1", "valor2", ...) o algo por el estilo (los valores eran los campos que iba obteniendo del archivo, se entiende. Luego le pasaba al mysql ese script que me habia generado y listo, ya tenia la base integrada. Tambien podes acceder (si lo tenes compilado de esa forma) en forma de solo lectura a archivos en formato dbf desde PHP, y desde ahi alimentar directamente la base de datos. Ya que me encontre con eso por "heredar" esos archivos dbf, tene cuidado con claves duplicadas (el mysql puede rechazarte la insercion si se encuentra con claves duplicadas cuando se supone que son unicas, mientras que el dbase podia dejartelos y tambien te puede rebotar inserciones si tenes un control de tipos mas solido que en dbase) y considera si haces una conversion directa o convertis la base de datos a algo mas relacional o ajustado a la realidad si el archivo ese xbase no estaba demasiado normalizado. Saludos Gustavo Saludos Gustavo