El código que te di perfectamente puede ser usado sobre un TIBQuery.
El problema (que creí que seria evidente) es que vos no haces un ciclo, por lo que solamente se almacenará un registro (el que sea el registro actual del dataset fuente).
Si todo está en un firebird, lo que si será mas óptimo es hacer la inserción de los registros via SQL, entre mas registros sean, mas óptimo será, pues se evita todo el tráfico de red.
La instrucción para dos tablas de estructura identíca será asi:
Código SQL
[-]
Insert into TablaDestino
Select *
from TablaFuente
where condiciones;
Que podes enviar a ejecutar desde un TIBSQL o un TIBQuery.
Hasta luego.
