Hola,
Hace tiempo hice un programa tambien para traspasar datos de una bd a otra, tal y como comentas que la bd origen es grande no te aconsejo que utilices los componentes TTable, porque entre otras cosas va ha ser muy lento el proceso. Para que te hagas una idea, cuando cuentas los registros de la que tiene 653.398 registros, estas provocando que estos viajen todos por la red!, solo para contarlos.
Código:
tbTabla1.Last;
tbTabla1.Edit;
pgbProceso.Max := tbTabla1.RecordCount;
Yo en tu lugar utilizaria componentes IBQuery, que tengan predefinidas las sentecias SQL insert, update y select:
Código:
select * from tabla where codigo = :CODIGO;
Utilizando parametros, despues desde codigo puedes acceder facilmente:
Código:
qrySelect.ParamByName("CODIGO")->AsString = "0001";
qrySelect.Open();
Saludos,