Pregunta

Mi pregunta es muy simple. Tengo un TClientDataSet que está vinculado a un TADOQuery a través de un TDataSetProvider. Puedo poner datos en el TClientDataSet del TADOQuery, pero ¿cómo puedo obtener los datos de la TClientDataSet de nuevo en el TADOQuery?

Los datos se transfieren automáticamente de la TADOQuery a la TClientDataSet cuando ejecuta una consulta y luego establezca la propiedad Active de la TClientDataSet en True, pero si desactivo el TADOQuery y luego se active de nuevo, ¿cómo puedo obtener los datos de nuevo desde el TClientDataSet ?

Estoy corriendo la misma consulta en varias bases de datos y el uso de la TClientDataSet para concatenar los resultados. Esto está funcionando bien. Mi problema ahora es que necesito para obtener el resultado concatenado apartado de la TClientDataSet en el TADOQuery para que pueda utilizar el procedimiento SaveToFile del TADOQuery (por razones de compatibilidad). ¿Cómo puedo hacer esto?

¿Fue útil?

Solución 3

He a punto de terminar mirando en esto. Mi aplicación permite al usuario generar informes de consulta de sus bases de datos. Puedo conseguir que esto funcione y es muy eficiente para pequeños conjuntos de resultados - sin embargo, como se trata de una aplicación de informes, y es muy posible que cientos de miles de registros pueden ser devueltos, utilizando un ClientDataSet da problemas de rendimiento masivo. Una vez que llegue por encima de alrededor de 50.000 registros (razonable, teniendo en cuenta la base de clientes), el procesamiento comienza a aumentar de forma exponencial, por lo que esta ahora es básicamente irrelevante.

Otros consejos

No hago TADOQuery como yo uso dbexpress, pero me imagino que es necesario utilizar la misma técnica. Después de haber publicado los cambios en TClientDataSet, llamar 'ApplyUpdates (0)', que transfiere los datos de la ClientDataSet a su proveedor.

Siempre se puede escribir el conjunto de datos de vuelta a una tabla temporal y luego consultarlo. Ay !!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top