Insertar en MySQL 300.000 resgistros desde una tabla DBF

829 views
Skip to first unread message

Julio Cesar Vente Ruiz

unread,
Feb 28, 2012, 9:53:42 AM2/28/12
to Comunidad de Visual Foxpro en Español
Saludos comunidad, alguien sabe como puedo hacer de forma facil y
rapida para subir a una tabla de servidor MySQL todos los registrios
que se encuentran en una tabla de DBF de forma rápida masiva..

De antemano muchas gracias..

carlos SALCEDO

unread,
Feb 28, 2012, 9:57:41 AM2/28/12
to visual fox
Pues rapido, y facil en algunos casos no es conveniente
sobre todo cuando no se si tuvistes en cuenta los tipos de datos
y lo que esto implica en una y otra tabla

si quieres mandame la extructura de las dos tablas y miramos pero ten encuenta que son
300.000 registros

Saludos
Carlos

> Date: Tue, 28 Feb 2012 06:53:42 -0800
> Subject: [vfp] Insertar en MySQL 300.000 resgistros desde una tabla DBF
> From: jvent...@gmail.com
> To: publice...@googlegroups.com

Julio Cesar Vente Ruiz

unread,
Feb 28, 2012, 10:30:56 AM2/28/12
to publice...@googlegroups.com
gracias Carlos por tu respuesta, las estructuras de todos los campos en DBF en mayoria son de texto, precisamente para evitar problemas con el cargue.
la idea es subir la informacion de forma rapida a una tabla temporal en MySQL y luego procesar esta tabla a la definitiva.


la estructura en MySQL es:

Field Type
co char(3) NULL
norden char(12) NULL
f_orden char(10) NULL
item_resu varchar(100) NULL
und char(3) NULL
proveedor varchar(100) NULL
f_entrega char(10) NULL
d_entrega int(3) NULL
fu_entrega char(10) NULL
p_cumple decimal(5,2) NULL
d_atraso int(3) NULL
pf_atraso decimal(5,2) NULL
d_adelan int(3) NULL
pf_adelan decimal(5,2) NULL
cnt_orden decimal(13,2) NULL
cnt_entra decimal(13,2) NULL
p_cnt decimal(5,2) NULL
p_cum2 decimal(5,2) NULL
cnt_pend decimal(13,2) NULL
comprador varchar(100) NULL
referencia char(9) NULL

y la estructura en DBF es:
                Field        Field Name         Type               Width                           Dec                   Index   Collate           Nulls                               Next                               Step
                    1        CO                 Character              3Asc   Machine              No
                    2        NORDEN             Character             12Asc   Machine              No
                    3        F_ORDEN            Character             10         No
                    4        ITEM_RESU          Character            100         No
                    5        UND                Character              3         No
                    6        PROVEEDOR          Character            100         No
                    7        F_ENTREGA          Character             10         No
                    8        D_ENTREGA          Character              3         No
                    9        FU_ENTRA           Character             10         No
                   10        P_CUMPLE           Character              5         No
                   11        D_ATRASO           Character              3         No
                   12        PF_ATRASO          Character              5         No
                   13        D_ADELAN           Character              3         No
                   14        PF_ADELAN          Character              5         No
                   15        CNT_ORDEN          Character             13         No
                   16        CNT_ENTRA          Character             13         No
                   17        P_CNT              Character              5         No
                   18        P_CUM2             Character              5         No
                   19        CNT_PEND           Character             13         No
                   20        COMPRADOR          Character            100         No
                   21        REFERENCIA         Character              9Asc   Machine  
--


Julio Cesar Vente Ruiz

Alejandro Villarreal

unread,
Feb 28, 2012, 10:33:34 AM2/28/12
to publice...@googlegroups.com
Julio utiliza  el comando LOAD DATA INFILE de MySQL antes pasa a un archivo de texto los datos de la tabla.

Saludos,
Alejandro Villarreal

> Date: Tue, 28 Feb 2012 06:53:42 -0800
> Subject: [vfp] Insertar en MySQL 300.000 resgistros desde una tabla DBF
> From: jvent...@gmail.com
> To: publice...@googlegroups.com
>

carlos SALCEDO

unread,
Feb 28, 2012, 10:42:48 AM2/28/12
to visual fox

Buenos en este caso te recomiendo lo siquiente

1. Create un procedimeiendo almacenado en Mysql para guardar en esta tabla
2. como tienes datos numericos en mysql mandele el valor con un scan
para que puedas convertir a numerico los valores y luego vas guardando

Saludos
Carlos

Date: Tue, 28 Feb 2012 10:30:56 -0500
Subject: Re: [vfp] Insertar en MySQL 300.000 resgistros desde una tabla DBF

Julio Cesar Vente Ruiz

unread,
Feb 28, 2012, 12:35:41 PM2/28/12
to publice...@googlegroups.com
Carlos, he hecho lo que me indicas en los pasos, pero con tansolo 4.000 registros se demora mucho 3 minutos,    Lo del LOAD DATA que indica Alejandro, se que es mucho mas rápido, pero primero tendria que pasar la DBF a un archivo de texto, eso no hay problema lo que no se hacer es el LOAD DATA desde FOX....?? como se hace, siendo que el servidor es remoto y la aplicacion la tengo en mi maquina...??

Gracias por responder...

Alejandro Villarreal

unread,
Feb 28, 2012, 1:10:29 PM2/28/12
to ForoFOx
Julio primero debes conectarte con la base de datos mediante comonado SQLCONNECT() luego ejecutas el siguinete codigo
LOAD DATA LOCAL INFILE 'Tu Archivo.txt' INTO TABLE NombraTabla; dentro del comando SQLEXEC()

en LOAD DATA (LOCAL) se utiliza cunado uno tiene el archivo de origen de datos en el cliente.

Y finalizas terminando la coneccion con SQLDISCONNECT()


Saludos,
Alejandro Villarreal


Date: Tue, 28 Feb 2012 12:35:41 -0500

Jose Oscar Vogel

unread,
Feb 28, 2012, 1:16:18 PM2/28/12
to publice...@googlegroups.com
Lo que puedes hacer es importar registros por lotes, es mucho mas rapido, 300000 te tiene que tardar un toque, yo importe mas de un millon y es rapidisimo

saludos Oscar
--
Prof. Jose Oscar Vogel
Garuhapé - Misiones
CP 3334
Cel: 03743-15667526
MSN: oscar...@gmail.com
Twitter: @ovogel23
Facebook: oscarvogel

Julio Cesar Vente Ruiz

unread,
Feb 28, 2012, 1:43:55 PM2/28/12
to publice...@googlegroups.com
lISTO...!!! Muchas gracias Aleandro funciona perfecto solo 2 segundos...
a los demas tambien muchas gracias...
Reply all
Reply to author
Forward
0 new messages