Dos cosas:
- Pon el código entre etiquetas delphi ( [ DELPHI ] ... [ / DELPHI ] ). Así se verá mejor.
- Danos el texto exacto del error. No creo que lo hayas interpretado bien. No creo que Delphi se de cuenta de qué dato va en qué base...
Código Delphi
[-]
dmBD2.BD2.DatabaseName := 'C:\Directorio2\BD2.gdb';
dmBD2.BD2.Connected := True;
dmBD2.TransBD2.Active := True;
DATASETLOCAL := tIBDataSet(dmBD1.EMPRESAS);
DATASETLOCAL.Active := TRUE;
DATASETLOCAL_Destino := tIBDataSet(dmBD2.EMPRESAS);
DATASETLOCAL_Destino.Active := True;
with dmBD1.AuxQuery do
begin
Active := FALSE;
SQL.Text := 'SELECT * FROM Articulos';
Active := TRUE;
First;
while not Eof do
begin
DATASETLOCAL_Destino.Insert;
for i := 0 to FieldCount - 1 do
begin
DATASETLOCAL_Destino.Fields[i] := Fields[i];
end;
DATASETLOCAL_Destino.Post;
Next;
end;
end;
También se me ocurre que no estés conectando correctamente a la base de datos destino.
Normalmente se pone igual que si fuera una conexión de red:
Código Delphi
[-]
dmBD2.BD2.DatabaseName := '192.168.0.1:C:\Directorio2\BD2.gdb';
dmBD2.BD2.DatabaseName := 'localhost:C:\Directorio2\BD2.gdb';
Además puedes hacer un trace (ir avanzando con F8) y decirnos en qué línea aparece ese error (y su texto).
Tampoco veo el Commit de la transacción.
Código Delphi
[-]
dmBD2.BD2.DatabaseName := 'C:\Directorio2\BD2.gdb';
dmBD2.BD2.Connected := True;
dmBD2.TransBD2.Active := True;
[...]
dmBD2.TransBD2.Commit;