Programación General > Delphi
Problemas Al Actulizar Ibquery
(1/1)
Isnel:
Amigos, quiero hacer una aplicación que me mantenga actulizado a traves de una DBGrid, cada vez que otra aplicación le inserte un registro a una tabla de una base de datos en InterBase.
Le agrego a un formulario las componentes
TIBDatabase
TIBTransaction
TIBQuery
TDBGrid
TDataSource
TIBEvents (Para que me avice cuando se le ha insertado un registro a la tabla)
--- Código: Text ---object Form1: TForm1 object DBGrid1: TDBGrid DataSource = DataSource1 end object IBDatabase1: TIBDatabase Connected = True DatabaseName = 'd:\Datos\DataBase.GDB' Params.Strings = ( 'user_name=SYSDBA' 'password=masterkey') LoginPrompt = False DefaultTransaction = IBTransaction1 IdleTimer = 0 SQLDialect = 3 end object IBTransaction1: TIBTransaction Active = True DefaultDatabase = IBDatabase1 AutoStopAction = saNone end object IBQuery1: TIBQuery Database = IBDatabase1 Transaction = IBTransaction1 Active = True BufferChunks = 1000 CachedUpdates = False SQL.Strings = ( 'select * from SMDRP order by ID desc') end object IBEvents1: TIBEvents AutoRegister = True Database = IBDatabase1 Events.Strings = ( 'New_Record') Registered = False OnEventAlert = IBEvents1EventAlert end object DataSource1: TDataSource DataSet = IBQuery1 endend
En el evento OnEventAlert de IBEvent1 pongo
--- Código: Text --- procedure TForm1.IBEvents1EventAlert(Sender: TObject; EventName: String; EventCount: Integer; var CancelAlerts: Boolean);begin IBQuery1.Close; IBQuery1.Open;end;
Pero algo está pasando que la DBGrid siempre muestra lo mismo, aunque se ejecute el procedure IBEvents1EventAlert.
Ayla:
Hola Isnel!
Creo que te falta hacer el comit de la transacción:
Prueba a poner en el evento AfterPost del IBQuery:
--- Código: Text ---IBTransaction1.Commit;
Espero que sea eso. Un saludo. :hola:
Navegación
Ir a la versión completa