Se trata de importar datos de una tabla de una conexión remota a una tabla de una conexión local.
Esto es solo un ejemplo pero he hecho pruebas usando motores de bases de datos distintos como por ejemplo MySQL a SQLite o de SQLServer a MariaDB
Tambien de una dbf de toda la vida a una tabla de MySQL.
jajaja me está gustando.
Os dejo un ejemplito de importación de una tabla de una conexión remota a una local (la url, la he cambiado porque el servidor no es mio)
- Code: Select all Expand view
/*
* Proyecto: hdo_general
* Fichero: ej48.prg
* Descripción: Ejemplo de uso de de dos conexiones una local y otra remota.
* Se hace una importacion de la tabla remota a la local
* Autor: Manu Exposito
* Fecha: 24/04/2020
*/
#include "hdo.ch"
REQUEST HDO
REQUEST RDLMYSQL
REQUEST RDLMYSQLN // Prueba tiempos con el nativo, para conexiones lentas debe ser masrapido
procedure main
local l, n
local oHDOL := THDO():new( "mysql" )
local oHDOR := THDO():new( "mysqln" ) // Prueba tiempos con el nativo
if oHDOR:connect( "hdo_demo", "lejos.ddns.net", "hdo_demo", "hdo_demo" ) .and. ;
oHDOL:connect( "hdodemo", "localhost", "root", "root" )
? "Conectado a una base de datos remota y otra local"
// Abro las dos tablas
USE devices NEW ALIAS dev_r VIA "HDO" OF oHDOR // Remoto
USE devices NEW ALIAS dev_l VIA "HDO" OF oHDOL // Local
// Miro el contenido de las dos tablas con el browse estandar
dev_r->( Browse() )
dev_l->( Browse() )
// Cuento el numero de columnas para recorrerlas
l := dev_r->( FCount() )
// Me voy al principio de la priemera tabla (la remota)
dev_r->( DBGoTop() )
// Comienzo la importacion
while !dev_r->( Eof() )
dev_l->( DBAppend() )
for n := 1 to l
dev_l->( FieldPut( n, dev_r->( FieldGet( n ) ) ) )
next
dev_l->( DBCommit() )
dev_r->( DBSkip() )
end
dev_l->( Browse() )
// No olvidar cerrar las tablas
CLOSE dev_r
CLOSE dev_l
endif
// No olvidad cerra la conexion
oHDOR:free()
oHDOL:free()
Alert( "Se termino" )
return
Os seguiré informando.
Si alguien quiere contribuir... yo ahí lo dejo