FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
No se refrescan las DBGrid ???
Hola a todos...
Tengo dos DBgrid enlazadas a dos IBDatasets. La DBGrid1 muestra los datos del IBDataset1 cuya sql es: Select * from alu000 where estado = 'A' La DBGrid2 muestra los datos del IBDataset2 cuya sql es: Select * from alu000 where estado = 'B' La idea es que al hacer dobleclick en una de las DBGrid cambie el valor del campo "estado" a su valor opuesto, es decir si es 'A' pasa a 'B' y viceversa. Con esto deberían cambiar las dos DBGrid. Suponiendo la existencia de un solo registro, éste debería pasar de una DBgrid a otra... bueno; lo que sucede es que desaparece de una pero no aparece en la otra. Para ello la Sql que se ejecuta al hacer doble click en la DBGrid1 es: // como es estado = 'A' lo pasa a estado = 'B' IBDataset1.selctsql.close; IBDataeet1.selectsql.clear; IBDataset1.selectsql.add('update alu000 set estado = :estado'); IBDataset1.parambyname('estado').asString := 'B'; IBDataset1.ExecSql; IBTransaction1.Commit; Sel_Alu_A; // procedure que contiene la sql que selecciona estado = 'A' Sel_Alu_B; // procedure que contiene la sql que selecciona estado = 'B' --------------------------------------------------------------------- Para la DBGrid2 al hacer doble click // (muestra estado = 'B' ) lo pasa a estado = 'A' IBDataset2.selctsql.close; IBDataeet2.selectsql.clear; IBDataset2.selectsql.add('update alu000 set estado = :estado'); IBDataset2.parambyname('estado').asString := 'A'; IBDataset2.ExecSql; IBTransaction2.Commit; Sel_Alu_A; // procedure que contiene la sql que selecciona estado = 'A' Sel_Alu_B; // procedure que contiene la sql que selecciona estado = 'B' // Cuando abro el form se ejecutan las sql Procedure Form.Create; begin Sel_alu_A; Sel_Alu_B; end; Ya he probado con el DBGrid.Refresh y otras cosas... sólo funciona cuando cierro el formulario y lo habro nuevamente; lo que significa que algo estoy pasando por alto y no sé que es... Alguna idea ??? Gracias por adelantado Fita |
|
|
|