ArdiIIa
13-07-2007, 22:01:05
Hola:
Estoy examinándo un programa algo antiguo en el que entre otras, tengo dos tablas Maestro/Detalle, son dos IbQuery. Ambos tienen su respectivo UpdateSql.
El Query Detalle recibe dos Params del Maestro (Ejercicio y Numero), que obviamente están debidamente referenciados en el Maestro.
La cuestión es que todo funciona "bien". Es decir: visualizándo los correspondientes datos en un formulario y trabajando con los datos, estos son correctos (Maestro / Detalle), pero ahora viene el problema que me he encontrado.
Resulta que he implementado un mecanismo en el que dos bucles recorren un determinado número de registros y actualizan un valor para que se disparen los triggers de la tabla detalle algo mas o menos así:
//Resumido
While not eof // Maestro
Begin
While not eof // detalle
Begin
Edit...
Post... // No sería necesario pero para claridad.
next...
End
Next
End;
Bueno, pues estoy bastante espeso con este asunto porque el resultado de los bucles es que solamente afecta al primer registro maestro y solamente modifica los registros detalles del 1 Maestro...
Resulta que he testeado "TODO" y me he encontrado que en dicho bucle, el QueryDetalle, no cambia el parámetro NUMERO, a pesar de que el Maestro si va cambiando.
He probado a ponerle un valor determinado al parámetro por ejemplo 55000, y resulta que se queda fijo, es decir, no cambia en virtud del valor del Query Master.
Le estoy dando bastantes vueltas al asunto, y no llego a encontrar el motivo de este "desajuste".
Utilizo los IBX originales (los que vienen con Delphi 7), y Firebird no tiene nada que ver con todo esto (aparentemente).
Alguna aportación ??
Gracias
Estoy examinándo un programa algo antiguo en el que entre otras, tengo dos tablas Maestro/Detalle, son dos IbQuery. Ambos tienen su respectivo UpdateSql.
El Query Detalle recibe dos Params del Maestro (Ejercicio y Numero), que obviamente están debidamente referenciados en el Maestro.
La cuestión es que todo funciona "bien". Es decir: visualizándo los correspondientes datos en un formulario y trabajando con los datos, estos son correctos (Maestro / Detalle), pero ahora viene el problema que me he encontrado.
Resulta que he implementado un mecanismo en el que dos bucles recorren un determinado número de registros y actualizan un valor para que se disparen los triggers de la tabla detalle algo mas o menos así:
//Resumido
While not eof // Maestro
Begin
While not eof // detalle
Begin
Edit...
Post... // No sería necesario pero para claridad.
next...
End
Next
End;
Bueno, pues estoy bastante espeso con este asunto porque el resultado de los bucles es que solamente afecta al primer registro maestro y solamente modifica los registros detalles del 1 Maestro...
Resulta que he testeado "TODO" y me he encontrado que en dicho bucle, el QueryDetalle, no cambia el parámetro NUMERO, a pesar de que el Maestro si va cambiando.
He probado a ponerle un valor determinado al parámetro por ejemplo 55000, y resulta que se queda fijo, es decir, no cambia en virtud del valor del Query Master.
Le estoy dando bastantes vueltas al asunto, y no llego a encontrar el motivo de este "desajuste".
Utilizo los IBX originales (los que vienen con Delphi 7), y Firebird no tiene nada que ver con todo esto (aparentemente).
Alguna aportación ??
Gracias