Evitar el "Refresh" del ClientDataSet
Hola amigos del foro.
Hace poco comenzé a programar (bue... en realidad, a probar) con Delphi 7 y MySQL. Estoy haciendo algunas pruebas para ver cuál es la forma más rápida de acceder a los datos, modificarlos, ordenarlos, etc. Estoy utilizando dbExpress y ClientDataSet para acceder y actualizar datos. Noté que a medida que aumenta la cantidad de registros de una tabla, el refresh del ClientDataSet tarda cada vez más (ya se, no descubrí la pólvora :D) Estoy probando una solución para este problema, y consiste en lo siguiente: Al agregar un nuevo registro, lo agrego a la base de datos mediante una instrucción SQL en un SQLDataSet (para mí es una opción muy cómoda) y luego, en lugar de hacer un refresh del ClientDataSet, le agrego (mediante insert - post) el nuevo registro. A continuación les muestro el código que utilizo.
Por las pruebas que estuve haciendo, todo funciona perfectamente. Por lo que Uds. se preguntarán: ¿Y qué es lo que querés saber entonces? El tema es que como no tengo experiencia en esto, no sé si lo que estoy haciendo puede traer algún problema o riesgo, o si hay alguna mejor forma de hacerlo. Por lo que me gustaría que me den su opinión de expertos. Les pido disculpas si la pregunta es muy ambigua o demasiado amplia. Desde ya les agradezco su tiempo. Leandro |
Supongo que no tendrás ningún problema mientras no hagas un ApplyUpdates, pero en tu caso que haces los cambios a través de SQLDataSet, no deberías tener problemas. Yo haría un CancelUpdates antes de cerrar el ClientDataSet.
El único inconveniente que le veo es si están trabajando varios clientes a la vez, no verás las actualizaciónes hechas por el resto de los clientes. |
Gracias Basti, voy a tener en cuenta lo de CancelUpdates, y en cuanto a las actualizaciones de los otros usuarios, voy a poner un botón "Refresh" en el formulario, para que el usuario pueda asegurarse de estar viendo los últimos datos.
Gracias otra vez. Saludos. Leandro |
La franja horaria es GMT +2. Ahora son las 16:16:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi