Delphi - Como se comportan los controles ?

 
Vista:

Como se comportan los controles ?

Publicado por MarioBros (5 intervenciones) el 30/06/2003 16:05:37
Hola a todos, les escribo para preguntarles si al utilizar controles de acceso a datos en delphi, ocurre como en Visual Basic, que todo anda bien si las bases de datos son chicas, pero con tablas y/o querys grandes, utilizando controles es mucho mas lento que utilizando código puro. Tal vez en Delphi no ocurra esto, pero pregunto porque soy nuevo en Delphi y quiero aprender buenas prácticas de programación Delphi desde el principio.

Desde ya muchas gracias por atender mi pregunta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como se comportan los controles ?

Publicado por mamcx (533 intervenciones) el 30/06/2003 16:54:44
Nada, en Delphi el sistema de enlaze no es un desastre como en VB. Funciona tan bien, que basicamente no ha cambiado desde la version 1 (en VB lo cambian en cada version).

Sin embargo, es importante tener en cuenta que de todas maneras hay que usar buenas tecnicas de acceso a datos, especialmente si se esperan cantidades importantes de informacion:

1- Seleccionar solo los campos que se necesitan, filtrar y ordenarlos de una vez en la consulta si es posible

2- Usar cacheo de datos: Si por ejemplo hay una tabla ciudades que no cambia mucho, y esta en un servidor, puedes traerte TODOS los datos de una vez, usar un TClientDataSet y guardar en un archivo local en disco. De esa manera, en los combos e informes te ahorrarias la consultada de ciudades porque ya la tenes localmente

3- Usar Query By Forms: Una tecnica de navegacion bien rapida es esto. Por ejemplo, en un formulario cuando este en modo de ver datos, si cambian el codigo entonces consultar por ese codigo no mas y traer los datos.

Para dar navegacion atras, adelante usa (si el motor de BD tiene esto) SELECT * TOP1..ORDER BY CampoUnico ASC/DESC, es realmente MUY rapido!

3- Con TClientDataSet y DataSnap/MIDAS puedes hacer consultas TOP n, esto es, traigame de a N registros no mas que despues voy por los otros (ideal para grids)

Por lo demas, recuerda usar DataSet.Enable/DisableControls para procesos importantes (esto deshabilita/habilita el enlace y evita que al hacer un recorrido se refresquen innecesariamente los controles)

Por lo demas, la demora real esta en la cantidad de datos que consultes y no tanto en el enlace
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como se comportan los controles ?

Publicado por MarioBros (5 intervenciones) el 30/06/2003 19:25:58
Gracias, lo voy a probar, y cualquier cosa te pregunto de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como se comportan los controles ?

Publicado por Delfino (1216 intervenciones) el 30/06/2003 19:10:15
Te sugeriria uno de los metodos q incrementa notablemente la rapidez al recorrer tablas y q muchos programadores no hacen uso de ello, se trata de desactivar los DB Controls cuando se esta recorriendo la tabla y activarlos al final, se hace de la siguiente manera:
try
table1.DisableControls;
...
...
...
finally
table1.EnableControls;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como se comportan los controles ?

Publicado por MarioBros (5 intervenciones) el 30/06/2003 19:27:41
Gracias por tu ayuda Delfino, voy a probar lo que me decís y cualquier cosa te pregunto otra vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar