RE:USAR DOS BASES DE DATOS EN TIEMPO DE EJECUCION
Para conectarte a dos bases de datos, simplemente debes utilizar un objeto Transaction para cada una. Si utilizas SQLCA para una BD, tienes que crear otro objeto para la otra BD.
Ejemplo:
// Declarar y crear SQLCB (SQLCA no es necesario declararla ni crearla)
Transaction SQLCB
SQLCB = create Transaction
// Profile SQLCA
SQLCA.DBMS = ...
.......
// Profile SQLCB
SQLCB.DBMS = ...
.......
// Conectar a las 2 bases de datos
CONNECT USING SQLCA;
If SQLCA.sqlcode <> 0 Then // Comprobar errores en conexión
Messagebox("Error en conexión a SQLCA", String (SQLCA.SQLDBCode) +": " + SQLCA.SQLErrText)
end if
CONNECT USING SQLCB;
...................
// Ya estás conectado a 2 bases de datos. Ahora realizas tus operaciones
..............
// Desconectar
DISCONNECT USING SQLCA;
if isvalid(SQLCB) then
DISCONNECT USING SQLCB;
destroy SQLCB
end if
Siempre que utilices SQL (COMMIT, ROLLBACK, ...) con la segunda BD, tienes que finalizar la sentencia con USING SQLCB; (para SQLCA no es obligatorio, pero sí es recomendable terminar con USING SQLCA;).
Y para traspasar los datos de una base de datos a otra, si son estructuras parecidas, lo más cómodo es utilizar pipelines.
Espero haberte ayudado.
Un saludo,
Pedro