FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Actualizar ClientDataSet usando TADOQuery y DataSetProvider
Hola a todos...
Estoy haciendo mis primeros pasos con clientdatasets, providers y esas cosas y me atacó una duda: Escenario de trabajo : MySQL y Delphi 6. Tengo un TADOQuery con una consulta, un DataSetProvider, un DataSource y un ClientDataSet, todos con su debida conexión que me muestra el resultado de una consulta en una grilla.Hasta aquí todo funciona perfecto, pero lo que necesito es modificar la consulta para obtener otros datos y en base al resultado de esa consulta actualizar el ClientDataSet y mostrar los nuevos datos en la grilla. Es decir, mediante un TEdit escribo una consulta, lo ejecuta el TADOQuery bien, pero no se reflejan los cambios en el ClientDataSet, por ende, tampoco en la grilla, ¿de que forma puedo hacer que al actualizar la consulta se reflejen los datos en el clientdataset y la grilla?. Desde ya, muchas gracias. |
#2
|
||||
|
||||
Para que todos los cambios hechos sobre el ClientDataSet se guarden en la base de datos, debes llamar a su método ApplyUpdates. En cuanto al DataSetProvider, conviene que mantengas su propiedad ResolveToDataSet en False; así cada alta, baja o cambio de registro lo traducirá en la respectiva instrucción SQL que emitirá al servidor usando de forma directa el componente conexión (en tu caso el ADOConnection).
No olvides revisar también las propiedades UpdateMode y ProviderFlags. En la ayuda y en este foro hay bastante material sobre el tema. Saludos. |
#3
|
|||
|
|||
Muchas gracias por la pronta respuesta Al, me imaginaba que recibiria alguna respuesta de tu parte, ya te tengo catalogado como el "Master of TClientDataSet".
Perdón por no ser mas explícito (de todas formas tu correo me sacó otras dudas), pero lo que yo hago son consultas de Select, no tengo que actualizar datos de la base de datos, simplemente hago un Select con determinadas características y listo, el problema pasa porque la primer consulta me trae bien los datos, pero cuando le cambio la sentencia por otro, se ejecuta bien, pero no me actualiza los datos del clientdataset.Por ahora lo que hago cada vez que realizo una nueva consulta es esto :
No me parece la manera mas correcta, pero al menos actualizo el clientdataset y por ende, la grilla, pero seguramente debe haber otra forma. Saludos y gracias. |
#4
|
||||
|
||||
Antes de que se haga un rumor de eso, he de decir que hay muchas cosas de TClientDataSet que todavía no he utilizado, como el almacenamiento en XML, los campos de sumario (aggregate fields) o la propiedad CommandText, con la cual podrías resolver el problema que planteas.
Cita:
|
#5
|
|||
|
|||
Nuevamente Al, dándole en el clavo.El commandtext es lo que necesitaba.Has revalidado el título, y aunque digas que te falta, para mí sos un gurú del ClientDataSet.
Muchísimas gracias. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TADOQuery, ClientDataSet y edición de campo NO persistente | Walterio | SQL | 8 | 20-04-2012 22:01:21 |
Transacciones DataSetProvider y ClientDataset | pablonill | Conexión con bases de datos | 4 | 22-11-2008 15:39:05 |
ayuda ClientDataSet, DataSetProvider y ApplyUpdates | cmm07 | Varios | 1 | 23-03-2008 08:27:28 |
Actualizar DBGrid conectado a TADOQuery | Acker | Conexión con bases de datos | 7 | 20-05-2006 12:31:05 |
IBQuery --> DataSetProvider --> ClientDataset | pinoxito | Conexión con bases de datos | 8 | 16-11-2005 20:40:34 |
|