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)
-   -   Applyupdates maestro/detalle (https://www.clubdelphi.com/foros/showthread.php?t=3721)

rafadrover 17-09-2003 21:07:58

Applyupdates maestro/detalle
 
Hola tengo un problema muy simple, estoy cambiando el esquema de una aplicacion para que el usuario pueda cancelar cambios que ha realizado.
Para ello queria utilizar cachedupdates, en lugar de rollback o commit, utilizo interbase, el problema que tengo es que teniendo una tabla maestro y otra cliente con cachedupdates, cuando le digo a la base de datos que me haga el applyupdates de las dos tablas, solamente me guarda la maestra. Sin cached updates todo funciona, pero tengo que hacer un post del maestro antes de hacer un insert en el cliente.
Alguien me puede dar una indicacion??

delphi.com.ar 17-09-2003 22:16:33

Tienes que hacer tanto el AppliyUpdates de la tabla Maestro como Detalle, y en este orden.

Ej:
Código:

tblMaestro.ApplyUpdates;
tblDetalle.ApplyUpdates;

O:
Código:

Database1.ApplyUpdates([tblMaestro, tblDetalle]);

¿Es esto lo que estas haciendo?
¿Te da algún error?

rafadrover 18-09-2003 09:55:09

Lo que estoy utilizando es el segundo còdigo Database.ApplyUpdates, primero pongo el maestro y luego el cliente

Código:

Database.ApplyUpdates([tblMaestro, tblCliente])
Es algo muy extraño ya que tocaria funcionar.

Lo que hago es en el evento AfterPost de l maestro, poner el applyupdates, teoricamente si no he hecho el post del cliente, el mismo applyupdates me lo tendria que guardar, de todas maneras hago el post del cliente.

delphi.com.ar 18-09-2003 15:51:08

Cita:

Posteado originalmente por rafadrover
Lo que hago es en el evento AfterPost de l maestro, poner el applyupdates
Me parece que haciendo esto estas desperdiciando los Catched Updates... yo pondría un botón que sea "Grabar" que ejecute los ApplyUpdates de ambos componentes.

Saludos!

rafadrover 19-09-2003 12:04:59

El problema no es ese, el problema es que quando hago el applyupdates no funciona bien y solamente guarda el maestro.

Voutarks 19-09-2003 16:08:33

En un FAQ sobre IBX encuentro lo siguiente:

Pregunta:

When using Cached Updates with a Master/Detail relation, details disappear when I post. What gives?

Respuesta:

This behavior is up at the TDataset level. When you go into Edit mode (or when you ApplyUpdates) the DataLink is passed a message that the cursor has been repositioned. This message will cause detail queries to close and re-open on the "new" position. The only way to stop this is to break the DataLink. Set the detail's DataSource to nil before applying the master's update.

rafadrover 24-09-2003 20:13:15

Gracias compañero, hoy haciendo pruebas me he dado cuenta de eso, si hago el apply updates desconectando el masterdatasource del detalle, funciona, pero luego tengo que volver a assignarselo. Me parecia un poco chapuzero, con BDE no pasa, pero con tu post se me ha confirmado, lo haré de esta manera, gracias.


La franja horaria es GMT +2. Ahora son las 20:02:20.

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