Yo creo que no estas atacando el problema como se debería.
Me refiero a que si se supone que es un proceso automático, no deberías usar un ClientDataset cuya funcionalidad principal se utiliza para la interacción con el usuario. Y definitivamente no deberías de trabajar con 300,000 registros a la vez.
Si aún así quieres trabajar con un ClientDataset, debes aceptar que trabajar con esa cantidad de datos a la vez, va a ser un proceso lento ya que se tienen que cargar a memoria. La parte de que te carga solo 3000 y deja de cargar, es porque tienes que recorrer el clientdataset hasta el 3001, para que cargue los siguientes 3000 y así sucesivamente hasta llegar al final.
Edito: Si lo que quieres verificar es si el dato en cuestión ya existe en la base de datos y si no existe lo insertas, entonces lo mejor sería colocar un índice en la base de datos que no te permita duplicar el dato que quieres guardar. Y luego a traves de una consulta SQL puedes insertar todos los datos en una sola instrucción.
Última edición por ContraVeneno fecha: 14-07-2011 a las 00:05:19.
|