• Viernes 19 de Abril de 2024, 21:49

Autor Tema:  Problemas Al Actulizar Ibquery  (Leído 1700 veces)

Isnel

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Problemas Al Actulizar Ibquery
« en: Miércoles 29 de Noviembre de 2006, 21:50 »
0
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
  1. object Form1: TForm1
  2.   object DBGrid1: TDBGrid
  3.     DataSource = DataSource1
  4.   end
  5.  
  6.   object IBDatabase1: TIBDatabase
  7.     Connected = True
  8.     DatabaseName = 'd:\Datos\DataBase.GDB'
  9.     Params.Strings = (
  10.       'user_name=SYSDBA'
  11.       'password=masterkey')
  12.     LoginPrompt = False
  13.     DefaultTransaction = IBTransaction1
  14.     IdleTimer = 0
  15.     SQLDialect = 3
  16.   end
  17.  
  18.   object IBTransaction1: TIBTransaction
  19.     Active = True
  20.     DefaultDatabase = IBDatabase1
  21.     AutoStopAction = saNone
  22.   end
  23.  
  24.   object IBQuery1: TIBQuery
  25.     Database = IBDatabase1
  26.     Transaction = IBTransaction1
  27.     Active = True
  28.     BufferChunks = 1000
  29.     CachedUpdates = False
  30.     SQL.Strings = (
  31.       'select * from SMDRP order by ID desc')
  32.   end
  33.  
  34.   object IBEvents1: TIBEvents
  35.     AutoRegister = True
  36.     Database = IBDatabase1
  37.     Events.Strings = (
  38.       'New_Record')
  39.     Registered = False
  40.     OnEventAlert = IBEvents1EventAlert
  41.   end
  42.  
  43.   object DataSource1: TDataSource
  44.     DataSet = IBQuery1
  45.   end
  46. end
  47.  

En el evento OnEventAlert de IBEvent1 pongo

Código: Text
  1.  
  2. procedure TForm1.IBEvents1EventAlert(Sender: TObject; EventName: String;
  3.   EventCount: Integer; var CancelAlerts: Boolean);
  4. begin
  5.     IBQuery1.Close;
  6.     IBQuery1.Open;
  7. end;
  8.  
  9.  

Pero algo está pasando que la DBGrid siempre muestra lo mismo, aunque se ejecute el procedure IBEvents1EventAlert.

Ayla

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.clubdevelopers.com/foros/index.php
Re: Problemas Al Actulizar Ibquery
« Respuesta #1 en: Jueves 30 de Noviembre de 2006, 12:38 »
0
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
  1. IBTransaction1.Commit;
  2.  


Espero que sea eso. Un saludo. :hola:
Y que mi luz te acompañe
pues la vida es un jardín
donde lo bueno y lo malo
se confunde y es humano
no siempre saber elegir.

Ayla Blog