PHP - Migracion dbf a mysql via php

   
Vista:

Migracion dbf a mysql via php

Publicado por Belen (7 intervenciones) el 04/08/2014 16:51:13
Hola a todos, que tal?

Les cuento, estamos trabajando la migración de una base de datos desde bdf a mysql por medio de un script en php. Tenemos problemas con acentos, diéresis y Ñ, hemos intentado solucionarlo utilizando utf8-encode, iconv y mb_convert_encoding pero no logramos que los datos se vean correctamente, ni mucho menos sean insertados de forma legible. De las codificaciones soportadas por php, no se a cual pertenece OEM o cual es la relación... he probado litetalmente con todos, pero si bien veo cambios no se muestran los datos correctos.

¿Alguna otra alternativa para probar? ¿Alguna configuración?

Gracias a todos por su atención,
Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Migracion dbf a mysql via php

Publicado por xve (5512 intervenciones) el 04/08/2014 17:41:42
Hola Belen, entiendo que faltaría saber con que codificación se ha creado el documento pdf para poder exportarlo correctamente...

Nos puedes mostrar el código que utilizas para ello con un archivo pdf para probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migracion dbf a mysql via php

Publicado por Belen (7 intervenciones) el 04/08/2014 19:26:58
Se está trabajando con una base de datos dbf, no con archivos pdf. Codificación OEM...
Gracias por tu respuesta!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Migracion dbf a mysql via php

Publicado por xve (5512 intervenciones) el 05/08/2014 08:11:29
Mil perdones Belen, lo lei rápido y no me di cuenta.

Nosotros para haces esos traspasos, utilizados la aplicación dbf2mysql http://sourceforge.net/projects/dbf2mysql/

Esta aplicación la puedes ejecutar desde consola o desde PHP sin problemas.

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migracion dbf a mysql via php

Publicado por Belen (7 intervenciones) el 05/08/2014 13:01:15
Claro, el tema (disculpas, debí explayarme más) es que la migración surge por el hecho de recibir periódicamente base de datos de otras instituciones, y nuestro objetivo es automatizar el proceso de importación de datos e integrarlo a un sistema en php ya funcional.
¿Cuál sería la manera de trabajar con un aplicación como la que me sugieres? vi que está desarrollada en C, no se si sea tan sencillo cruzar las dos tecnologías, la verdad no lo he hecho antes.

Gracias por tu respuesta,
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Otra solucion

Publicado por DEVILSITO (141 intervenciones) el 05/08/2014 18:06:17
La verdad es que la solucion la veo por el lado de la aplicacion que genera las DBF's. Por ejemplo yo tengo un programa en VFP9 que sube los datos a un hosting en formato CSV y el PHP por su parte los incorpora dichos datos al MySQL sin ningun problema
La rutina es bastante simple, y es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure csv_desol &&**************************** prepara csv de algunos campos de hrt_desol
SELECT codpry_c,numsol_c,numbie_c,codtip_c,precio_n FROM hrt_desol2 INTO CURSOR cur_csv_desol
arch = fcreate("c:\gmi\puntodeventa\exportdata\"+ALLTRIM(STR(Hrt_mapry.codpry_c))+"des.csv")
ini = '"'
sep = '";'+'"'
SET POINT TO "."
DO WHILE !EOF()
lin = ini+ ALLTRIM(STR(codpry_c))+sep+;
ALLTRIM(STR(numsol_c))+sep+;
ALLTRIM(numbie_c)+sep+;
ALLTRIM(codtip_c)+sep+;
ALLTRIM(STR(precio_n))+ini
FPUTS(arch,lin)
Skip
ENDDO
fclose(arch)
SET POINT TO ","
USE
return

Cuentame como te fue
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Otra solucion

Publicado por Belen (7 intervenciones) el 05/08/2014 19:43:02
Hola, gracias por tu respuesta...
No se si he entendido mal, pero yo tengo el dbf ya creado y recibo uno nuevo cada mes, no tengo opción de alterar nada en cuánto a cómo se genera; y la idea es independizarse de otras tecnologías, y realizar una importación de los datos en forma autocontenida (es decir, que nuestro sistema pueda hacerlo en forma transparente al usuario, y no tenga que modificar el archivo con otro programa ni nada por el estilo).
Por todo esto es que consulto, si conocen alguna otra manera de convertir datos en php, o alguna cosa que pueda estar faltándonos... que nos ayude a lograr este objetivo.

Gracias nuevamente!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Migracion dbf a mysql via php

Publicado por xve (5512 intervenciones) el 05/08/2014 20:50:12
Hola Belen, esta desarrollado en C, pero lo que yo digo, es que ejecutes desde PHP el binario, como podrias ejecutar cualquier otra instrucción del sistema operativo...

Para ello, puedes por ejemplo, ejecutar la instrucción exec() o system() del PHP
http://php.net/manual/es/function.exec.php
http://php.net/manual/es/function.system.php

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migracion dbf a mysql via php

Publicado por Belen (7 intervenciones) el 05/08/2014 22:12:57
Lo intentaré! mil gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migracion dbf a mysql via php

Publicado por Belen (7 intervenciones) el 07/08/2014 20:05:12
Otra vez yo, ¿Cómo están??
Les comento, estuve trabajando con la aplicación recomendada (dbf2mysql), y efectivamente en forma interactiva logro migrar los datos desde dbf a mysql, sin problemas de codificación.

Sin embargo, no he conseguido hacerlo desde línea de comandos; he visto muchos ejemplos hechos con linux pero nosotros debemos trabajar sobre un servidor windows. ¿Alguien lo ha hecho? ¿Algún ejemplo a mano?

La sintáxis es dbf2mysql <script name> <host> <port> <database> <user> [<password>]. Lo que no toma correctamente es el script, dentro del mismo coloco el nombre del bdf y me dice que falta el nombre de la tabla, pero no sé cuál es la sintáxis o formato para agregarlo, he probado mucho pero me da error en todo.

Gracias otra vez!!Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Migracion dbf a mysql via php

Publicado por xve (5512 intervenciones) el 07/08/2014 20:53:47
Hola Belen, nosotros trabajamos con Linux, y no lo puedo probar...

Nos puedes decir exactamente el error que te da?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migracion dbf a mysql via php

Publicado por Belen (7 intervenciones) el 08/08/2014 14:05:47
Hola, Que tal?

Te detallo los errores:

1) si tipeo en cmd: dbf2mysq base.bdf HOST PORT DATABASE USER PASS
el error es:
Processing script Archivo.dbf
Error opening file c
Error opening file CATT
Error opening file ANT
Error opening file FINCON
Archivo.dbf is done.
(Donde c, CATT, etc son los campos de la tabla dbf).

La única especificación que vi, dice que el primer parámetro es <script name>; entonces cree un archivo donde coloque:
2) el nombre de la base dbf, y el error es: error in line 1: MySQL table name missing.

3) he probado agregando el nombre de la tabla, antes o después (con -t o <table>), y/o en líneas distintas. Pero en todos los casos, intenta leer lo agregado como archivo.
Ejemplo: archivo.bdf -t nombreTabla
y da el error: Error opening file archivo.bdf -t nombreTabla. File skipped.

Desconozco cuál es el formato que debe tener el script para que dbf2mysql trabaje...¿pueden ayudarme con eso?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar