![]() |
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 |
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. |
Yo utilizo dbExpress y FIBPlus.
Saludos. |
La franja horaria es GMT +2. Ahora son las 18:00:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi