Migrando de Foxpro a MySql

Estoy pasando datos de una base de datos a mysql, bueno la mecánica es que creo la base de datos en mysql con el mysql administrador en la version 5.1.34 de mysql y en foxpro con la version 9.0, la idea es usar foxpro con mysql. El problema es que es muy lento migrar los datos con la siguiente rutina.
TRY
    LOCAL _pedido, _cod_barra, _cantidad, _p_publico as Double, _iva, _iva2, _descuento
    SELECT detallev
       FOR a = 1 TO RECCOUNT()
       *// asignamos los valores de la tabla que vamos a migrar
       GO a
           STORE INT(detallev.pedido) TO _pedido
           STORE detallev.cod_barra TO _cod_barra
           STORE INT(detallev.cantidad) TO _cantidad
           STORE detallev.p_publico TO _p_publico
           STORE INT(detallev.iva) TO _iva
           STORE INT(detallev.iva2) TO _iva2
           STORE INT(detallev.desc) TO _descuento
       *// insertamos los registros en mysql
       SQLEXEC(Con, 'Insert into detallev values (?_pedido , ?_cod_barra, ?_cantidad,     ?_p_publico, ?_iva, ?_iva, ?_descuento)')
       ENDFOR
         MESSAGEBOX("Los campos se han actualizado con éxito", 64,"")
CATCH
   MESSAGEBOX("Ocurrió un problema en la conexión")
ENDTRY
Antes de postear, busque en el foro y vi que recomendabas la herramienta de dbf2mysql me la baje y me da el siguiente error
error connecting to database
client does not support authentication protocol requested by server; consider upgrading MySql client
este error ocurre cuando selección la tabla que deseo migrar.

1 Respuesta

Respuesta
1
La velocidad de migrar no se porque va ser lenta, y si para ti es lento ese código, creo que con mysql también lo sera, pero para solucionar esta conexión que es debido al cliente antiguo y usas mysql 4.x, entonces para solucionar eso has por consola lo siguiente-
SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
Donde some_user es tu usuario, por ejemplo root, OLD_PASSWORD() es la función que hará el encriptado viejo, con eso debe funcionar dbf2mysql y prueba a ver como te va
Gracias, me dio otro erro, al final deje que terminara con el ciclo for
Tengo otra duda, por ejemplo en el casos de bases de datos mysql ya todas son en red, tengo que cuidar o asegurar las tablas mientras las uso, para evitar usos por otro programa. digamos como las intrucciones lock mientras las uso.
Y una segunda pregunta, tengo una base de datos que utiliza un software mybussines pues, esa utiliza creo que la version 3 de mysql, lo que me interesa de ahí es la tabla productos, el caso es que me copie la base de datos al direcotio de bases de datos de mysql 5.1 pero me dice que la base de datos esta dañada que la repare, ahí dentro trae un archivo .bat para repararlas tablas
me aparece el siguiente error en el administrador de bases de datos
incorrect key file for table 'prods'; try to repair it
como lo puedo solucionar por la frase podrían ser los indices.
Gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas