Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Numeración maestro-detalle en actualizaciones en caché (https://www.clubdelphi.com/foros/showthread.php?t=66764)

birmain 11-03-2010 01:15:29

Numeración maestro-detalle en actualizaciones en caché
 
Un saludo a todos.

Mi cuestión es la siguiente: Utilizo Firebird 1.5, Delphi 7 y los componentes de acceso a Firebird son IBDAC de Devart. Realizo la unión maestro detalle de dos querys una cabecera y otra detalle de pedidos utilizando el siguiente esquema:

Querys autocommit a False
CaheUpdates True

Los Querys están perfectamente enlazados, y cuando asigno los valores de las claves en cabecera, se reasignan perfectamente en el detalle, activo ApplyUpdates y acepto la transacción. Todo funciona perfectamente. Pero tiene un inconveniente, esto es, si cancelo los cambios ya ha corrido el numerador y produce un hueco en la numeración. Para resolver esto he resuelto asignar un número especial paea el registro nuevo (-999) mientras está en caché, y antes de ApplyUpdate obtener el número de pedido, entonces renumero la cabecera y el detalle, o sea sustituyo -999 por el número obtenido del numerador, y aplico los cambios y termino la transacción. De esta forma evitaría que al cancelar corra la numeración.

Pero el problema es el siguiente: Que haciéndose perfectamente todo, solo me envía a la base de datos la cabecera. Desaparece el detalle. En firebird hay una clave foránea que relaciona cabecera y detalle. La clave consta de 5 campos, pero solo se altera el campo número de pedido.

Agradecería si alguien ha estudiado estos componentes o se ha visto en esta situación y la ha resulto, me facilitara alguna información.
Muchísimas gracias por anticipado

birmain 11-03-2010 16:22:48

Problema resuelto
 
Era un bug de IBDAC de Devart, que lo solucioné bajándome la última revisión (de hace 5 días)
Por cierto, ¿alguien utiliza estos componentes?. Son sencillos de utilizar y de bastante rendimiento.

Un saludo.

guillotmarc 11-03-2010 19:24:51

Yo utilizo dbExpress y FIBPlus.

Saludos.


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

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