Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   SimpleDataSet y ApplyUpdates (https://www.clubdelphi.com/foros/showthread.php?t=92766)

mane 25-01-2018 16:56:54

SimpleDataSet y ApplyUpdates
 
Hola. He hecho una pequeña aplicación con Firebird usando SimpleDataSet por su sencillez. Funcionaba bien hasta que la he puesto en red y veo que (pese a tener ApplyUpdates en el evento AfterPost) no se actualizan los cambios salvo que cierre y abra la tabla en cuestión.

Dado que no hay Provider no veo cómo solucionarlo.

¿Hay solución sin cambiar SimpleDataSet?

Gracias.

ElKurgan 26-01-2018 07:51:56

Mira la propiedad "LogChanges".

Por defecto vale True, lo que indica que todos los cambios se realizan en la propiedad "Delta" del dataset, no en la fuente de datos asociada. Esta se actualiza cuando cierras el dataset.
Cuando vale "False", los cambios se realizan directamente en la propiedad "Data" del dataset.

Veo que dices que no tienes Provider, y por eso no te funciona el ApplyUpdates. Eso mismo pasa cuando LogChanges vale False: Se actualizan los datos inmediatamente pero si tienes un provider luego no te deja hacer "ApplyUpdates".

Mira a ver si esto te sirve.

Un saludo

mane 26-01-2018 09:26:37

LogChanges
 
Gracias por tu aportación pero no veo esa propiedad LogChanges en el SimpleDataSet.

Según tengo entendido, en el SimpleDataSet el provider es interno y no tengo acceso a él.

mane 26-01-2018 09:59:32

He probado a poner por código...


Código Delphi [-]
SimpleDataset1.LogChanges:=False;

pero entonces no modifica los datos en el fichero FBD. Al entrar de nuevo en la aplicación están inalterados.

ElKurgan 26-01-2018 12:24:16

A ver si lo que falta es hacer un refresh de los datos...

Otra cosa no sé que puede ser

Saludos

mane 26-01-2018 16:01:59

De nuevo gracias por tu atención. Con Refresh ya había probado (al igual que hacer Close/Open) y sí me actualiza pero si pongo un Refresh de cada tabla de las que intervienen en un proceso antes de acceder a él.

No entiendo que no actúe el ApplyUpdates. Supongo que buscaré una alternativa a SimpleDataSet (desconozco si tiene limitaciones) o pondré un diluvio de Refresh por todo el código.

Buen fin de semana.

ElKurgan 29-01-2018 07:04:34

La verdad es que no he usado nunca el simpleDataset, pero debería funcionar como el conjunto completo de Dataset+Provider. No entiendo que puede estar pasando

Cita:

Empezado por mane (Mensaje 524224)
Buen fin de semana.

Igualmente


La franja horaria es GMT +2. Ahora son las 04:28:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi