Hola El Rayo.
Según los dos procesos que describes (importar registros a una base de datos e insertar registros en un conjunto de datos de memoria), y tratando de atar cabos con la información que ofreces, podría recomendarte lo siguiente:
1. Para insertar a una base de datos registros que provienen de otra, es mejor prescindir de cualquier componente
DataSet, ya que usar éste como intermediario sin duda hará que el proceso sea más lento. Es mejor realizar las inserciones enviando instrucciones
Insert Into directamente a la base de datos mediante el objeto
Conection/
Database que estés empleando.
2. Si por cualquier otra razón, necesitas agregar miles de registros a un conjunto de datos de memoria, la clase nativa TClientDataSet sigue siendo una buena opción. Hay que saber qué propiedades activarle o desactivarle para que no realice trabajo innecesario. Por ejemplo, puedes cambiar su propiedad LogChanges a False, con lo cual obtendrás un beneficio de tiempo notable. Además, aunque es un poco más elaborado, puedes saltarte los clásicos métodos Insert, Append y otros, y agregar los registros mediante llamadas de bajo nivel a las interfaces DSBase y DSCursor que contiene el objeto, es decir, ejecutando directamente rutinas de MIDAS. Con ello te ahorras un montón de
trámites que la clase hereda de TDataSet.
Yo me despido de este hilo, pero te invito a sentirte como en casa con las grandes consideraciones que compañeros como Casimiro tienen hacia las personas que necesitan ayuda. Así como él, hay muchos otros que lo único que buscan es apoyar a los miembros de la Comunidad Delphi (siempre y cuando éstos realmente se quieran dejar ayudar). Que tengas bonita tarde, te dejo en buenas manos.
Al González.