armadillo
29-09-2006, 13:26:15
Hola a tod@s!!
Necesito un experto en componentes del Tipo DataSet :-), explico mi problema, antes que nada aclaro mi forma de trabajo, Uso Delphi 7 y FireBird para el acceso a la base de datos uso los componentes Interbase y FibPlus indistintamente. Casi siempre he trabajado con tablas del tipo PAradox, pero hace un par años entre de lleno con Interbase/Firebird.
He notado un pequeño problema que no se como solucionar elegentemente, me explico, da igual que use los componentes Interbase o FibPlus, ya que el problema es el mismo, resulta que si en el la propiedad Select del DataSet pongo esta consulta:
SELECT
ID_CLIENTE,
ID_PAGOS,
ENTRADAS,
SALIDAS,
ENTRADAS-SALIDAS AS SALDO
FROM PAGOS
Vemos que el campo SALDO es de tipo calculado, el tema es que cada vez que inserto un registro, en el DBGrid o DBEdit, se actulizan perfectamente todos los campos excepto el calculado, en este caso "SALDO", por mas que presione en el boton actualizar del componente DBNvigator, no actualiza nada (me refiero a saldo) la unica manera es forzar al DataSet a ejecutar nuevamente el codigo SELECT que lo logro cerrando y abriendo el DataSet. Si en este caso la tabla pagos fuera una
tabla de tipo detalle, y que la maestro fuera CLIENTES, no haria falta cerrar y abrir el dataset con solo cambiar el registro en el dataset maestro y luego volver al registro original, ahi si tengo actualizado correctamente todos los campos en el detalle.
Alguien podria decirme a que se debe esto? o como podria forzar al dataset a que re-lea ..... hmmmm a ver si me pueden decir a donde apuntar ya que me esta volviendo un poco loco el tema, claro que es por falta de conocimiento sobre el tema...
Desde ya muchas gracias
Necesito un experto en componentes del Tipo DataSet :-), explico mi problema, antes que nada aclaro mi forma de trabajo, Uso Delphi 7 y FireBird para el acceso a la base de datos uso los componentes Interbase y FibPlus indistintamente. Casi siempre he trabajado con tablas del tipo PAradox, pero hace un par años entre de lleno con Interbase/Firebird.
He notado un pequeño problema que no se como solucionar elegentemente, me explico, da igual que use los componentes Interbase o FibPlus, ya que el problema es el mismo, resulta que si en el la propiedad Select del DataSet pongo esta consulta:
SELECT
ID_CLIENTE,
ID_PAGOS,
ENTRADAS,
SALIDAS,
ENTRADAS-SALIDAS AS SALDO
FROM PAGOS
Vemos que el campo SALDO es de tipo calculado, el tema es que cada vez que inserto un registro, en el DBGrid o DBEdit, se actulizan perfectamente todos los campos excepto el calculado, en este caso "SALDO", por mas que presione en el boton actualizar del componente DBNvigator, no actualiza nada (me refiero a saldo) la unica manera es forzar al DataSet a ejecutar nuevamente el codigo SELECT que lo logro cerrando y abriendo el DataSet. Si en este caso la tabla pagos fuera una
tabla de tipo detalle, y que la maestro fuera CLIENTES, no haria falta cerrar y abrir el dataset con solo cambiar el registro en el dataset maestro y luego volver al registro original, ahi si tengo actualizado correctamente todos los campos en el detalle.
Alguien podria decirme a que se debe esto? o como podria forzar al dataset a que re-lea ..... hmmmm a ver si me pueden decir a donde apuntar ya que me esta volviendo un poco loco el tema, claro que es por falta de conocimiento sobre el tema...
Desde ya muchas gracias