La Web del Programador: Comunidad de Programadores
 
    Pregunta:  272 - PRODUCTIVIDAD DE LAS GRILLAS
Autor:  David
Mi programa trae datos de archivos planos a tablas de base de datos. Son 4 Archivos que por ende llenan 4 Tablas y habilite 4 grillas para mostrar el resultado de esa poblamiento. El resultado en tiempo de ejecución del programa es totalmente ineficiente y creo que se debe a que pobla las tablas y a la vez las grillas. Como solución he tratado de cargar las grillas en el código fuente no en la ventana de propiedades, pero la asignación a la propiedad Datasource de la grilla(en el código) NO SE COMO HACERLO

  Respuesta:  Patricia Delbono
Yo estoy realizando el llenado de una grilla con codigo a traves del recordset. El control grilla que utilizo el Msflexgrid o Active Spread que son bastante faciles de programar. El data control tiene la propiedad de "complicar" la situación porque la grilla es el reflejo del data.control.
Por un problema de tiempo no puedo enviarte el codigo ahora pero si lo necesitas enviame un e-mail y te lo preparo.

  Respuesta:  Antonio Esteban Soria
No puedes asignar un control DATA a un DBGRID en tiempo de ejecución, de forma que si quieres actualizar los datos dentro del DBGRID una vez actualizadas las tablas puedes hacer lo siguiente:

1 - Asigna todos los DBGRID´s a sus controles DATA en tiempo de diseño. (uno por cada tabla)
2 - Modifica las propiedades DATA1.Databasename y Data1.Recordsource, despues de realizar la actualización de las tablas (inicialmente dejalo vacio en tiempo de diseño, de forma que lo asignas en tiempo de ejecución).
3 - Ejecuta el metodo REFRESH del control DATA.
4 - Ejecuta el metodo UPDATECONTROLS del control DATA.

La solución reside en asignar por código los datos del control DATA y no los del DBGRID.

Espero que estas lineas te sirvan de ayuda.

Para cualquier problema o cualquier otra duda ruego me envíes un mail.

Un Saludo.