![]() |
Problemas modificando una tabla
Hola,
Mi nombre es Jordi, vivo cerca de Valencia, y llevo casi 10 años programando en Delphi. Saludos a tod@s!!! Llevo el programa de gestión de un centro médico, el cual empecé el año 99 en Delphi5, y sigo con esa versión por miedo a incompatibilidades. Uso una BBDD en Interbase. Empecé con v5.5, ahora uso la versión 8.1 (2007). Nunca he tenido problemas con el programa, pero ahora me ocurre una cosa que no llego a comprender, por eso os pido ayuda: Una factura incluye varias visitas. Las visitas facturadas las marco Facturado=Si. Cuando editamos una factura que ya existe, se permite modificar las fechas de facturación Si se cambian, es necesario desmarcar Facturado=Si de las visitas de la factura original y marcar las nuevas, de la siguiente forma: -desmarcar: MarcarVisitesFacturades( True ); -marcar: MarcarVisitesFacturades( False ); Las funciones se llaman una detrás de otra, modificando las fechas (Data0 y Data1) antes de la segunda llamada.
Por alguna razón que desconozco, la querie de MarcarVisitesFacturades( False ) no actualiza la base de datos al momento. Es necesario cerrar el programa totalmente y volver a entrar para ver que las visitas están facturadas… ¿Por qué pasa esto? Únicamente cerrando y abriendo el form de facturación no se actualizan. En el FormClose hago DBModule.Query.Close; Esta es la llamada al form de facturación, ¿quizás el “Free” no es correcto? Con “Release” el problema sigue…
Agradezco de antemano cualquier ayuda o pista para llegar a solucionar este problema. Saludos cordiales, Jordi |
Hola
No entiendo donde se hace referencia a verdadero o falso aqui?. Tampoco la necesidad del try, finally, sin excepción? Saludos |
Hola
No se, esencialmente deberia funcinar. Quizas asi: seguro que sabes mas que yo de esto, solo trato de dar ideas. Saludos |
Hola...
Cita:
Cita:
Saludos... |
Hola...
No le veo caso al uso del try..finally que esás usando, así que lo quité.
Me imagino que estás usando los componentes IBX, si es así, ¿usas el componente TIBTransaction en tu aplicación? Saludos... |
Hola
La edad y la vista no perdonan. Saludos |
Hola, se me ocurre que pueda pasarte por dos cosas:
- que te dejes la query cerrada, y no releas los cambios con un nuevo 'select' y query.Open despues de modificarlos. - que tarde o espere en actualizarse la base de datos. No conozco interbase, pero en otros componentes de base de datos existe, por ejemplo, updatemode, donde se puede escoger UpdateMode := upWhereChanged, etc.. De todas maneras quiza te funcione mediante query.ApplyUpdates o query.Refresh |
Gracias a todas por las repuestas! :)
coso, voy a profundizar en las pistas que me das... :eek: |
La franja horaria es GMT +2. Ahora son las 02:39:23. |
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