FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Sincronizar 2 Bases de Datos MySQL
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Sincronizar 2 Bases de Datos MySQL
Posted: Fri Jun 16, 2017 06:20 PM

Estimados, buenas tardes, acudo a su experiencia en esta ocasion el caso es el siguiente :

Voy a desarrollar (Yo o por encargo) una Web en PHP con MySQL para que por medio de ella los proveedores ingresen sus facturas y el personal cargue sus gastos.
Yo tengo en la Red Local una BD MySQL con el software de gestion en el que se ingresan los pedidos, cotizaciones, ordenes de compra, facturas, Etc.
Cual es la mejor forma, segun vuestra experiencia, para que mantenga actualizadas ambas bases de datos, NO de manera global sino solo algunas tablas :
Los proveedores que actualizan sus datos en la Web, se actualicen en la Red Local.
Las Ordenes de Compra ingresadas en la Red Local suban a la Web.
Las facturas ingresadas a la Web bajen a la Red Local.
Todo de manera automatica y desatendida, ya sea por medio de programacion en FHW (ideal) o en el peor de los casos, por aplicaciones de terceros.
Gracias

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: Sincronizar 2 Bases de Datos MySQL
Posted: Sat Jun 17, 2017 12:22 AM

Enrrique,

Yo hize un proyecto para un cliente haciendo lo que tu mencionas,
Una base de datos MySQL manejada por una aplicacion windows en modo local con y una aplicacion web
para modo remoto.

Si quieres enviame un mail a albeiroval arroba gmail punto com

Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Sincronizar 2 Bases de Datos MySQL
Posted: Sun Jun 18, 2017 09:40 AM
Enrique,
Enrrique Vertiz wrote:E
Cual es la mejor forma, segun vuestra experiencia, para que mantenga actualizadas ambas bases de datos, NO de manera global sino solo algunas tablas :
Los proveedores que actualizan sus datos en la Web, se actualicen en la Red Local.
Las Ordenes de Compra ingresadas en la Red Local suban a la Web.
Las facturas ingresadas a la Web bajen a la Red Local.

¿Donde se ejecutaría la aplicacion PHP? Porque lo ideal seria que tengas un solo MySQL, y si quieres darle seguridad, crea para la app PHP un usuario que solo puede acceder a las tablas de facturas de proveedores y gastos.
La situacion tuya es ideal, porque usas un solo motor de datos, por lo que solo el resto es cuestion de logistica.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: Sincronizar 2 Bases de Datos MySQL
Posted: Mon Jun 19, 2017 08:29 PM

Albeiro, Carlos, gracias por contestar

Carlos, la idea es tener una aplicacion Web en la nube con MySQL para capturar registro de proveedores, pedidos, cotizaciones y que se sincronice con un MySQL que estaria en la red local, donde se trabaja el resto de modulos, subir todo a la nube tendria el problema de la lentitud, los registros contables son muchos y de varias personas al mismo tiempo, no seria rapido con un MySQL en la nube.
Entonces mi consulta es, como mantener sincronizado lo que se ingresa en la Web con lo que se registra en la Red Local ??
Gracias

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Sincronizar 2 Bases de Datos MySQL
Posted: Tue Jun 20, 2017 03:26 AM
This is how I would do it using FWMYSQL (FWMARIADB)

Code (fw): Select all Collapse
// purchase orders
nLastId  := oCloud:QueryResult( "select max(id) from purchaseorders" )
aRows    := oLocal:Execute( "select * from purchaseorders where id > ?", nLastID )
if !Empty( nRows )
   oCloud:Insert( "purcaseorders", nil, aRows )
endif

// invoices
nLastID  := oLocal:QueryResult( "select max(id) from invoices" )
aRows    := oCloud:Execute( "select * from invoices where id > ?", nLastID )
if !Empty( aRows )
   oLocal:Insert( "invoices", nil, aRows )
endif
// sync complete


Note: id is either auto-inc field or timestamp
oCloud and oLocal are connections to cloud and local servers.
Regards



G. N. Rao.

Hyderabad, India
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Sincronizar 2 Bases de Datos MySQL
Posted: Thu Jun 29, 2017 10:07 PM
Enrique,
Enrrique Vertiz wrote:
Carlos, la idea es tener una aplicacion Web en la nube con MySQL para capturar registro de proveedores, pedidos, cotizaciones y que se sincronice con un MySQL que estaria en la red local, donde se trabaja el resto de modulos, subir todo a la nube tendria el problema de la lentitud, los registros contables son muchos y de varias personas al mismo tiempo, no seria rapido con un MySQL en la nube.
Entonces mi consulta es, como mantener sincronizado lo que se ingresa en la Web con lo que se registra en la Red Local ??
Gracias

Eso se llama replicacion, puedes hacer que se grabe todo en un servidor y que el de la web sea una réplica, utilizando los mecanismos propios de MySQL.
Al margen de esto... ¿Has probado realmente que la operación via Internet sea lenta? Uso un servidor en Italia desde España, y la verdad la velocidad casi ni se nota. De hecho hace poco he visto que se ofrecen como servicio servidores mysql listos para usar por muy poco dinero en la web.

Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: Sincronizar 2 Bases de Datos MySQL
Posted: Thu Jun 29, 2017 10:15 PM

Carlos, gracias por la informacion, analizare tu sugerencia.

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m

Continue the discussion