![]() |
ADOQuerys con campos "If(..." no se actualiza en un DbGrid
Hola a todos...
Mi escenario : - Delphi 6 - MySQL - ADO para la conexión - TADOQuery, DataSetProvider yTClientDataSet. Tengo varias consultas en donde la sentencia Select tiene un campo con la función IF(). Ej.:
Hasta aquí, todo bien, el tema es que estos datos los muestro en una DbGrid, si hago una modificación o un insert (uso otro form para los ABM, no edito en la grilla directamente), al volver del ABM, los campos con "IF" no se actualizan, mientras que los otros campos si, incluso campos de la consulta que tengo mediante JOINS.Tengo que cerrar el form que contiene la grilla y al volver a abrirla, allí si se muestran los cambios...el tema es que necesito que los cambios se vean reflejados en la grilla al volver del form del ABM...¿alguna sugerencia....?. Desde ya, muchas gracias |
En lugar de cerrar el form, haz un .refresh del dataset
|
Hola Casimiro...
Gracias por tu respuesta.Estuve probando lo que me sugeriste con los siguientes resultados : En mi código, delpues del ClientDataSet.DataSet.Post, hago un ClientDataSet.DataSet.Refresh, pero recibo un mensaje de error como el siguiente : " EDatabaseError - Must apply updates before refreshing data", entonces, antes del .refresh, supongo, deberia hacer un ClientDataSet.ApplyUpdates(-1)...el tema es que desde la ayuda de Delphi (Delphi 6 en mi caso), explica el uso del ApplyUpdates en el ClientDataSet, pero....sorpresa!!!, al compilar, recibo este mensaje : "Error] TForm1.pas(437): Undeclared identifier: 'ApplyUpdates'". Se supone que si vengo usando los ClientDataSet en este form, y tal como dice la ayuda de Delphi, el ApplyUpdates deberia funcionar...¿o mi Delphi está rebelde...?. Saludos y gracias por la paciencia y la ayuda. |
No conozco apenas los componentes ADO y no suelo usar los TClientDataSet :(
Pero mientras alguien responde, puedes echar un vistazo al libro de Marteens, creo recordar que trae un apartado sobre los mismos. A ver si hay suerte :) |
Muchas gracias Casimiro por tu atención.
Ya estoy leyendo el artículo que me pasaste.Al final, le encontré una pseudo-solución al tema hasta que lo pueda resolver mas "elegantemente", uso el método del TField, OnGetTex, al menos, visualmente para el usuario, es una solución.La ayuda de Delphi explica muy bien este método, pero si hace falta el detalle, lo publico para compartirlo con todos.(No estoy en la oficina, por lo cual no tengo el código a mano para publicarlo). Nuevamente, mil gracias. Saludos. |
hola
creo que MySQL soporta la condicional , revisa esa estructura en la ayuda de mysql a ver si desde el query la traes ensablanda y solo tienes que mostrarla en tu front end |
La franja horaria es GMT +2. Ahora son las 12:45:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi