FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Velocidad de carga en TGrid y TStringGrid
Buenas a todos,
hoy, por primera vez, me he puesto a desarrollar una aplicación multiplataforma para windows y mac. Estoy utilizando componentes de conexión FDConnection a una base de datos en un servidor windows server 2019 que tiene una base de datos MySQL. Cuando creo el proyecto veo que, para que funcione en las dos plataformas, puedo utilizar el TGrid y el TStringGrid para visualizar los datos de un FDQuery, el caso que me ocurre es que, si no enlazo el FDQuery a ninguno de los componentes de visualización y le doy a Activate:=true, tarda poco en traer los datos del servidor, cuando lo enlazo tarda un minuto largo en pintar la información en estos grids, si en lugar de utilizar estos elementos cojo, los mismos componentes de conexión (FDConnection y FDQuery) pero en una aplicación VCL con un TDBGrid, el pintado es prácticamente instantáneo. El enlace en la aplicación multi se hace automáticamente en bindvisually arrastrando el DataSet al Grid, da igual que el que sea, TGrid o TStringGrid, con los dos tarda muchísimo. ¿Hay algo que esté haciendo mal?, ¿Tendría que utilizar otro tipo de componente de terceros?. En fin que no sé que hacer, si a alguno se le ocurre algo agradecería la ayuda. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#2
|
||||
|
||||
¿Has utilizado EnableControls/DisableControls?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Hola Germán,
lo siento pero no sé a que te refieres. ¿Podrías ilustrarme? Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#4
|
||||
|
||||
Hola de nuevo,
he visto que es una propiedad que lleva el dataset, lo he puesto sin más antes de hacer la consulta (fdquery1.enablecontrols, si es así como se utiliza no ha hecho nada, sigue igual de lento. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#5
|
||||
|
||||
Hola.
El uso sería al revés, DisableControls antes de efectuar la consulta y EnableControls una vez realizada.
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
|||
|
|||
Hola ElDioni yo personalmente tengo una aplicacion para windows y macOS bajo Firemonkey hace 5 años y va de pelos je, la verdad Livebindings no me gusta nada de nada prefiero hacer las consultas y llenar las grillas a mano, te recomiendo si podes dentro de tus posibilidades adquirir las grillas de TMSsoftware y los controles OrangeUI Free que son increibles.
|
#7
|
||||
|
||||
Cita:
he probado como me comentas y no ha mejorado nada, estoy cargando la información en un StringGrid ya que con TGrid me salta un error al intentar enlazar los datos que reza así: "Cannot change this property when using livebindings" Voy a echar un vistazo a los componentes que proponía el compañero a ver que me encuentro. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#8
|
||||
|
||||
Tal vez si pones el código que usas para mostrar los datos podamos afinar un poco más.
Estamos dando palos de ciego.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
||||
|
||||
Puede que lo que esté sucediendo es que al usar livebindings, estás obteniendo todos los datos de la tabla.
Normalmente, si estableces la propiedad PacketRecords de un TClientDataset, obtendrás grupos de registros según lo requieras. En cambio con LiveBindings, al parecer esto no funciona así. Aclaro que no he leído documentación al respecto y puede que no haya establecido alguna propiedad que respete la cantidad de registros obtenidos. Hice una prueba, con Firebird. Una tabla de 1000 registros y 2 ClientDatasets. El primero asociado a una Tgrid con LiveBindings y el segundo sin asociar. Ambos con la propiedad PacketRecords = 50. Al abrir ambos datasets, el resultado del RecordCount es: El asociado a LiveBindings = 1000 y el otro = 50.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#10
|
||||
|
||||
Cita:
Los objetos que hay son, un FDConnection, un FDQuery, un StringGrid, un FDPhysMySQLDriverLink, un BindSourceDB, un BindingsList (estos dos últimos me los crea automáticamente al enlazar el FDQuery con el StringGrid en el bindvisually) y un button. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
INFO: DLL's, BPL's, carga dinámica, carga estática y Packages en Runtime | Neftali [Germán.Estévez] | OOP | 26 | 13-12-2013 20:29:55 |
Cambiar Font de una TGrid | Neeruu | FireMonkey | 6 | 16-09-2013 18:02:47 |
Formato de fechas en tgrid | vicentnew | FireMonkey | 2 | 09-09-2013 20:06:21 |
Como graficar 3D con TGrid? | JuanErasmo | C++ Builder | 3 | 04-12-2005 10:36:30 |
ordenar la informacion en un tgrid | Giniromero | Conexión con bases de datos | 2 | 18-06-2003 13:47:20 |
|