FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Los cambios hechos por una 2da forma no se actualizan inmediatamente
Una nueva duda. Igualmente estoy usando Firebird y componentes Interbase (ibTransaction, ibQuery, ibDatabase).
Tengo una forma (frm_HistoriaClinica) que muestra los datos relacionados a un paciente, como son sus relaciones heredofamiliares. Si el usuario quiere dar de alta una nueva relación heredofamiliar, se llama a una nueva forma para tal propósito (frm_Hdofamiliares), se indican los campos ID, el usuario ingresa los datos respectivos, se actualiza la BD y regresa a la forma anterior. Coloqué separadamente el proceso de popular la lista de heredofamiliares (TListBox) ya que así la puedo llamar tanto al abrir la forma principal, como cuando se hace alguna operación sobre dicha tabla.
Ok. El problema surge al momento de actualizar los datos en la forma de Heredofamiliares (frm_Hdofamiliares) y regresar a la forma principal (frm_HistoriaClinica); aún cuando se supone que al regresar, la nueva relación ya está dada de alta en la BD y se vuelve a leer esta, la nueva relación no aparece. Es necesario cerrar la forma de Historia Clinica y volverla a abrir para poder ver la nueva relacion heredofamiliar que se dio de alta. Si se supone que estoy liberando la instancia de la forma secundaria (frm_Hdofamiliares) se supone que lo hace y acaba las transacciones que hayan quedado; y si posterioremente abro y cierro la BD para volver a leer las relaciones heredofamiliares, se supone que va a leer la recién ingresada, no? Que estoy haciendo mal? O no debo hacerlo a nivel query y tengo que hacerlo por otro método? Gracias de antemano por la ayuda |
#2
|
|||
|
|||
Ok. Ya me respondi yo solo.
Después de haber leído algunos posteos como los de hacer Refresh sobre el datasource, el que a veces no funciona como comenta vtdeleon y algunos otros comentarios, empece a usar el método heurístico (lease pruebayerror + aversipega) a fin de tratar de resolver esto.
La solución la encontré validando si había una transacción activa en la forma padre y de ser afirmativo, decir que la terminara. El código quedó como sigue.
lo que me pareció extraño es que tengo que hacer referencia a la transacción de la forma padre (HistoriaClinica) en lugar de la transaccion de la forma hija (Heredofamiliar) ya que fue con los recursos de esta última con lo que realice la operación sobre la BD e hice la transacción. No se si es que al refererirse a la misma tabla, el problema con el commit sea a nivel sesión de BD y no a nivel de forma. enfin, lo dejo por si a alguien más le es de utilidad. gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
No guarda los cambios hechos | lucasarts_18 | MS SQL Server | 1 | 06-10-2006 03:55:21 |
No se actualizan los datos al grabar | marcial | Conexión con bases de datos | 4 | 25-05-2006 11:04:29 |
abortar inmediatamente | acrophet | Varios | 4 | 20-10-2003 18:07:18 |
no se me actualizan los DBEDit | Giniromero | Conexión con bases de datos | 5 | 09-10-2003 13:58:36 |
|