![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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?? |
#2
|
||||
|
||||
Tienes que hacer tanto el AppliyUpdates de la tabla Maestro como Detalle, y en este orden.
Ej: Código:
tblMaestro.ApplyUpdates; tblDetalle.ApplyUpdates; Código:
Database1.ApplyUpdates([tblMaestro, tblDetalle]); ¿Es esto lo que estas haciendo? ¿Te da algún error?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#3
|
|||
|
|||
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]) 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. |
#4
|
||||
|
||||
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() Última edición por delphi.com.ar fecha: 19-09-2003 a las 15:54:11. |
#5
|
|||
|
|||
El problema no es ese, el problema es que quando hago el applyupdates no funciona bien y solamente guarda el maestro.
|
#6
|
||||
|
||||
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. |
#7
|
|||
|
|||
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.
|
![]() |
|
|
![]() |
|