Creo que lo puedes hacer, haber si esto te ayuda un poco...
C=>Genera Pedido, cuando se guarde este pedido hay que crear un pedido en A o B...
A, B: Se deberá crear un procedimiento almacenado que reciba los datos de un pedido para almacenar.
Supongamos que es este:
Código SQL
[-]
create or alter procedure NuevoPedido(Folio integer, Valor double precision)
as
begin
insert into Pedidos(folio, valor) Values(:Folio, :Valor);
end
C: Se deberá llamar a procedimiento en A o B.
Supongamos que en C, tenemos el siguiente procedimiento
Código SQL
[-]
create or alter procedure Orden_En_A(Folio integer, Valor double precision)
as
declare stProcCall varchar(100) ='execute procedure NuevoPedido(:Folio, :Valor)';
declare stConexion varchar(100)='localhost:/home/database/Base_Data_A.fdb'
begin
execute statement (stProcCall) (Folio := :Folio, Valor := :Valor)
on external DATA SOURCE (stConexion) AS USER CURRENT_USER PASSWORD 'masterkey'
end
create or alter procedure Orden_En_B(Folio integer, Valor double precision)
as
declare stProcCall varchar(100) ='execute procedure NuevoPedido(:Folio, :Valor)';
declare stConexion varchar(100)='localhost:/home/database/Base_Data_B.fdb'
begin
execute statement (stProcCall) (Folio:= :Folio, Valor:= :Valor)
on external DATA SOURCE (stConexion) AS USER CURRENT_USER PASSWORD 'masterkey'
end
Por supuesto se puede mejorar y parametrizar, pero eso luego...Espero te ayuda
Un abrazo
Mas detalles aquí