Consulta Sobre Pasar Dbf a Mysql
Consulta Sobre Pasar Dbf a Mysql
Hola Amigos, muy buen día.
Tengo una solicitud de pasar periódicamente una DBF de 1.100.000 registros, a una tabla MySQL, donde realizaran algunas estadísticas externas.
Necesito como pasar esta DBF, con la complicación que existe una campo en la DBF que en la Tabla MySQL cambia de nombre, pero debe tener el mismo dato.
Estructura DBF.
Folio N 10
Fecha D
Cod_Pro C 5 ** Este Campo Cambia de Nombre en tabla MySQL
Nom_Pro C 40
...
...
...
Tabla Tabla MySQL
Folio N
Fecha D
Med_Tra ** Este Campo debe contener el mismo dato de Cod_Pro.
Nom_Pro
Existe alguna forma de realiza este proceso desde FWH 17.09, con algun codigo Prg. y generar una ejecutar un exe cuando se requiera.
Muchos Saludos
Antonio
Tengo una solicitud de pasar periódicamente una DBF de 1.100.000 registros, a una tabla MySQL, donde realizaran algunas estadísticas externas.
Necesito como pasar esta DBF, con la complicación que existe una campo en la DBF que en la Tabla MySQL cambia de nombre, pero debe tener el mismo dato.
Estructura DBF.
Folio N 10
Fecha D
Cod_Pro C 5 ** Este Campo Cambia de Nombre en tabla MySQL
Nom_Pro C 40
...
...
...
Tabla Tabla MySQL
Folio N
Fecha D
Med_Tra ** Este Campo debe contener el mismo dato de Cod_Pro.
Nom_Pro
Existe alguna forma de realiza este proceso desde FWH 17.09, con algun codigo Prg. y generar una ejecutar un exe cuando se requiera.
Muchos Saludos
Antonio
Re: Consulta Sobre Pasar Dbf a Mysql
Podes hacer el insert en la base de datos, recorriendo la dbf y cada n registros (por ejemplo 10000) grabas en la base
Espero te sirva
Code: Select all
TRY
CONNECT oServer HOST cServer ;
USER cUser ;
PASSWORD cPassword ;
PORT nPort ;
FLAGS nFlags;
DATABASE cDBName
CATCH oErr
RETURN NIL
END
USE folios ALIAS "folios" SHARED NEW
text = "insert into mitabla (folio, fecha, Med_Tra, Nom_pro) VALUES "
i = 0
TRY
oServer:BeginTransaction()
oServer:Execute("SET SESSION wait_timeout = 186400") // Pones una duracion de sesion larga
oServer:Execute("TRUNCATE mitabla") // Esto unicamente si cada vez que la tenes que llenar, primero la tenes que vaciar
do while !folios->(eof())
text = text + " (" + clipvalue2sql(folios->folio) + ","+;
clipvalue2sql(folios->fecha) + "," +;
clipvalue2sql(folios->Cod_Pro) + "," +;
clipvalue2sql(folios->Nom_Pro) +;
+"),"
folios->(dbskip())
i++
IF i > 10000
i := 0
text = LEFT(text,LEN(text) - 1)
oServer:Execute(text)
text = "insert into mitabla (folio, fecha, Med_Tra, Nom_pro) VALUES "
ENDIF
enddo
IF i > 0
text = LEFT(text,LEN(text) - 1)
oServer:Execute(text)
ENDIF
oServer:CommitTransaction()
oServer:Execute("SET SESSION wait_timeout = 28800") // Volves a poner corta
CATCH oErr
MsgStop("Error MySql"+CHR(10)+oErr:description,"Error")
RETURN NIL
END TRY
Re: Consulta Sobre Pasar Dbf a Mysql
Hola Cesar.
Muchas gracias por tu ayuda, siempre presente cuando requiero de ella, te lo agradezco de corazón.
Realizare las pruebas este fin de semana.
Muchas gracias y que estés muy bien.
Saludos
Antonio
Muchas gracias por tu ayuda, siempre presente cuando requiero de ella, te lo agradezco de corazón.
Realizare las pruebas este fin de semana.
Muchas gracias y que estés muy bien.
Saludos
Antonio
Re: Consulta Sobre Pasar Dbf a Mysql
Antonio:
Como te puedes dar cuenta, las DBF y Tablas pueden convivir perfectamente.
Saludos
Como te puedes dar cuenta, las DBF y Tablas pueden convivir perfectamente.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Consulta Sobre Pasar Dbf a Mysql
Hola Armando como estas.
Si, ayer me contacto un cliente que por lo menos tenia 25 años sin saber de el, en aquellos años le desarrolle un Sistema pero Clipper 5.2 DOS, ni pensar en ambiente windows, para mi sorpresa, aun lo usan y con un almacenamiento de 1.000.000 de registros. Es una grata sorpresa, pero un gerente necesita poder trabajar esa información externamente y por eso la consulta.
Muchos Saludos.
Antonio
Si, ayer me contacto un cliente que por lo menos tenia 25 años sin saber de el, en aquellos años le desarrolle un Sistema pero Clipper 5.2 DOS, ni pensar en ambiente windows, para mi sorpresa, aun lo usan y con un almacenamiento de 1.000.000 de registros. Es una grata sorpresa, pero un gerente necesita poder trabajar esa información externamente y por eso la consulta.
Muchos Saludos.
Antonio
Re: Consulta Sobre Pasar Dbf a Mysql
Antonio:
Otro comentario, para trabajar con tablas, ya sean MySQL, MariaDB o SQL,
no necesitas librerías externas, ojo, NO DIGO QUE SEAN MALAS o que no sirvan,
simplemente digo que no las necesitas, con ADO + las mejoras a muchos
comandos que Mr. Rao ha hecho (Estupendo trabajo) tienes suficiente.
Lo único que debes cambiar es tu chip para no querer trabajar tablas al
estilo de las DBFs.
Saludos
Otro comentario, para trabajar con tablas, ya sean MySQL, MariaDB o SQL,
no necesitas librerías externas, ojo, NO DIGO QUE SEAN MALAS o que no sirvan,
simplemente digo que no las necesitas, con ADO + las mejoras a muchos
comandos que Mr. Rao ha hecho (Estupendo trabajo) tienes suficiente.
Lo único que debes cambiar es tu chip para no querer trabajar tablas al
estilo de las DBFs.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Consulta Sobre Pasar Dbf a Mysql
Armando:
Muy agradecido por ayuda, entiendo todo lo que me has comentado y mucho mas con la información que me enviaste.
En este caso particular, no son mas de 8 campos de una Dbf que contiene varios mas, que incluso revisando entre mis cosas, ni siquiera tengo los PRG del sistema de clipper, que es una versión muy antigua, por lo que lo único que podría hacer es crear unas pocas líneas de código en FWH con un parámetro de fecha para seleccionar y eso es todo, que lo ejecuten cuando lo necesiten, algo esta pasando en las gerencias que están reuniendo manipular datos en busca de información que les ayude a gestionar.
La verdad que me deja muy sorprendido que al dia de hoy, aun este en plena vigencia, un sistema desarrolla completamente en clipper y 16 bits.
Bueno amigo, creo que yo aun estoy muy lejos de la actualidad de uds, años luz, espero pronto como te comente dar el salto a MySQL, SQL, en un proyecto grade, solo deseo que sea luego.
Muchos Saludos.
Antonio
Muy agradecido por ayuda, entiendo todo lo que me has comentado y mucho mas con la información que me enviaste.
En este caso particular, no son mas de 8 campos de una Dbf que contiene varios mas, que incluso revisando entre mis cosas, ni siquiera tengo los PRG del sistema de clipper, que es una versión muy antigua, por lo que lo único que podría hacer es crear unas pocas líneas de código en FWH con un parámetro de fecha para seleccionar y eso es todo, que lo ejecuten cuando lo necesiten, algo esta pasando en las gerencias que están reuniendo manipular datos en busca de información que les ayude a gestionar.
La verdad que me deja muy sorprendido que al dia de hoy, aun este en plena vigencia, un sistema desarrolla completamente en clipper y 16 bits.
Bueno amigo, creo que yo aun estoy muy lejos de la actualidad de uds, años luz, espero pronto como te comente dar el salto a MySQL, SQL, en un proyecto grade, solo deseo que sea luego.
Muchos Saludos.
Antonio
Re: Consulta Sobre Pasar Dbf a Mysql
Antonio:
Sin pretender meterme en tus negocios, pienso que tu cliente está
en un riesgo alto, los PCs a 16 bits prácticamente están extintos
así que el día que, por necesidad, deban cambiar a PCs de 32 o 64
bits tu excelente sistema dejará de funcionar.
Saludos
Sin pretender meterme en tus negocios, pienso que tu cliente está
en un riesgo alto, los PCs a 16 bits prácticamente están extintos
así que el día que, por necesidad, deban cambiar a PCs de 32 o 64
bits tu excelente sistema dejará de funcionar.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Consulta Sobre Pasar Dbf a Mysql
Armando
Totalmente de acuerdo en lo que opinas, por eso me sorprende que aun este operativo este sistema, no he visto hoy en que maquinas los están corriendo, solo se que hasta pc con Windows xp 32 bits, tendría que funcionar sin problemas. Pensar proponer una actualización, tendría que evaluarlo mucho, por mi parte ya no desarrollo ese tipo de temas, hoy desarrollo en el área de la Salud, ya hace muchos años. Esto es solo responder a pasar los datos a una Tabla que me la han solicitado así.
Muchos Saludos
Antonio
Totalmente de acuerdo en lo que opinas, por eso me sorprende que aun este operativo este sistema, no he visto hoy en que maquinas los están corriendo, solo se que hasta pc con Windows xp 32 bits, tendría que funcionar sin problemas. Pensar proponer una actualización, tendría que evaluarlo mucho, por mi parte ya no desarrollo ese tipo de temas, hoy desarrollo en el área de la Salud, ya hace muchos años. Esto es solo responder a pasar los datos a una Tabla que me la han solicitado así.
Muchos Saludos
Antonio
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Consulta Sobre Pasar Dbf a Mysql
It is very easy using built-in MySql library of FWH 17.09, using this function without writing any code.remtec wrote:Hola Amigos, muy buen día.
Tengo una solicitud de pasar periódicamente una DBF de 1.100.000 registros, a una tabla MySQL, donde realizaran algunas estadísticas externas.
Necesito como pasar esta DBF, con la complicación que existe una campo en la DBF que en la Tabla MySQL cambia de nombre, pero debe tener el mismo dato.
Estructura DBF.
Folio N 10
Fecha D
Cod_Pro C 5 ** Este Campo Cambia de Nombre en tabla MySQL
Nom_Pro C 40
...
...
...
Tabla Tabla MySQL
Folio N
Fecha D
Med_Tra ** Este Campo debe contener el mismo dato de Cod_Pro.
Nom_Pro
Existe alguna forma de realiza este proceso desde FWH 17.09, con algun codigo Prg. y generar una ejecutar un exe cuando se requiera.
Muchos Saludos
Antonio
Code: Select all
USE MYDBF
oCn:UploadFromAlias( "mysqltable", "FOLIO,DATA,CODE_PRO,NOM_PRO", "folio,date,med_tra,nom_pro" )
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Consulta Sobre Pasar Dbf a Mysql
This is a small exmaple.
You can copy to fwh\samples folder, build with buildh or buildx and test.
Please provide your mysql server credentials, password, etc.
You can copy to fwh\samples folder, build with buildh or buildx and test.
Please provide your mysql server credentials, password, etc.
Code: Select all
#include "fivewin.ch"
function TestUploadFromAlias()
local oCn, oRs, nBatchSize := 500
FWCONNECT oCn HOST "localhost" USER "root" PASSWORD "yourpassword" DATABASE "yourdb"
? "connected"
oCn:DropTable( "dbf2sql" )
oCn:CreateTable( "dbf2sql", { { "custname", "C", 30, 0 }, { "address", "C", 30, 0 } } )
? "table created"
USE CUSTOMER NEW
? "start upload"
oCn:UploadFromAlias( "dbf2sql", "TRIM(FIRST-','-LAST),STREET", "custname,address", nBatchSize )
? "uploaded"
oRs := oCn:dbf2sql
XBROWSER oRs
oRs:Close()
oCn:Close()
return nil
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Consulta Sobre Pasar Dbf a Mysql
Mr. Rao.
Muy buen dia.
Deseando que te encuentres muy bien.
Como siempre mil gracias por tu ayuda y tiempo dedicado, estos nos ayuda a crecer.
Ya he probado y funciona muy bien, ahora a preparar el programa para hacer las ultimas pruebas y entregar.
Muchas gracias.
Antonio.
Muy buen dia.
Deseando que te encuentres muy bien.
Como siempre mil gracias por tu ayuda y tiempo dedicado, estos nos ayuda a crecer.
Ya he probado y funciona muy bien, ahora a preparar el programa para hacer las ultimas pruebas y entregar.
Muchas gracias.
Antonio.
- TecniSoftware
- Posts: 213
- Joined: Fri Oct 28, 2005 6:29 pm
- Location: Quilmes, Buenos Aires, Argentina
Re: Consulta Sobre Pasar Dbf a Mysql
Mr Rao
Es posible utilizar un Meter en este ejemplo para visualizar el progreso?
Muchas gracias
Es posible utilizar un Meter en este ejemplo para visualizar el progreso?
Muchas gracias
nageswaragunupudi wrote:This is a small exmaple.
You can copy to fwh\samples folder, build with buildh or buildx and test.
Please provide your mysql server credentials, password, etc.Code: Select all
#include "fivewin.ch" function TestUploadFromAlias() local oCn, oRs, nBatchSize := 500 FWCONNECT oCn HOST "localhost" USER "root" PASSWORD "yourpassword" DATABASE "yourdb" ? "connected" oCn:DropTable( "dbf2sql" ) oCn:CreateTable( "dbf2sql", { { "custname", "C", 30, 0 }, { "address", "C", 30, 0 } } ) ? "table created" USE CUSTOMER NEW ? "start upload" oCn:UploadFromAlias( "dbf2sql", "TRIM(FIRST-','-LAST),STREET", "custname,address", nBatchSize ) ? "uploaded" oRs := oCn:dbf2sql XBROWSER oRs oRs:Close() oCn:Close() return nil
Alejandro Cebolido
Buenos Aires, Argentina
Buenos Aires, Argentina
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Consulta Sobre Pasar Dbf a Mysql
1. Setup your meter
2. oCn:bMeter := { |nProgress,nTotal| <your_meter_update_function>( nProgress,nTotal ) }
3. oCn:UploadFromAlias(...)
4. oCn:bMeter := nil
But we advise you not to display meter, except for very huge tables, because the display of meter reduces the speed a lot.
2. oCn:bMeter := { |nProgress,nTotal| <your_meter_update_function>( nProgress,nTotal ) }
3. oCn:UploadFromAlias(...)
4. oCn:bMeter := nil
But we advise you not to display meter, except for very huge tables, because the display of meter reduces the speed a lot.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- TecniSoftware
- Posts: 213
- Joined: Fri Oct 28, 2005 6:29 pm
- Location: Quilmes, Buenos Aires, Argentina
Re: Consulta Sobre Pasar Dbf a Mysql
Thank you!nageswaragunupudi wrote:1. Setup your meter
2. oCn:bMeter := { |nProgress,nTotal| <your_meter_update_function>( nProgress,nTotal ) }
3. oCn:UploadFromAlias(...)
4. oCn:bMeter := nil
But we advise you not to display meter, except for very huge tables, because the display of meter reduces the speed a lot.
Geetings
Alejandro Cebolido
Buenos Aires, Argentina
Buenos Aires, Argentina