Entwickler-Ecke
Datenbanken - ZEOS EventAlert
lars2002 - Mi 03.02.10 14:02
Titel: ZEOS EventAlert
Moin,
irgendwie bekomm ich den EventAlert der ZEOS Lib nicht zum laufen.
Ich hab eine Tabelle die nach einem INSERT ein Event auslöst (dieser Teil funktioniert auch der Event Monitor von FlameRobin zeigt es korrekt an) versuch ich allerdings das Event mit dem ZIBEventAlerter aufzufangen passiert nichts.
ZConnect ist verbunden, ZIBEventAlert mit den Eigenschaften
Delphi-Quelltext
1: 2: 3: 4:
| AutoRegister := true; Connection := ZConnection1; Events enthält das Event Registered := false; |
Ereignisse:
OnEventAlert soll einfach nur in ne ListBox geschrieben werden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); begin ZConnection1.Connected:=true; ZIBEventAlerter1.AutoRegister:=true; end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin ZConnection1.Connected:=false; end;
procedure TForm1.ZIBEventAlerter1EventAlert(Sender: TObject; EventName: string; EventCount: longint; var CancelAlerts: boolean); begin ListBox1.Items.Add(EventName); end; |
Hat irgendjemand von euch eine Idee wo der Fehler sein könnte?
Danke und Gruß Lars
Moderiert von
matze: Delphi-Tags hinzugefügt
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
Xentar - Mi 03.02.10 16:00
Du musst der Komponente auch mitteilen, WELCHE Events registriert werden soll.
Soweit ich weiß registriert diese nicht erstmal alle, sondern wirklich nur die, die man in RegisteredEvents (glaub ich) eingetragen hat.
lars2002 - Mi 03.02.10 16:30
Hallo,
danke erstmal ich hab das Event direkt im Objektinspektor unter ZIBEventAlert1.Events eingetragen muss ich die dann nochmal extra registrieren?
Gruß Lars
Xentar - Mi 03.02.10 16:41
Ach, hast du schon eingetragen. Tschuldigung, hab ich überlesen.
Ich persönlich vertrau eigentlich nicht auf die Funktion AutoRegister, sondern lass dsa lieber auf False, und ruf selber RegisterEvents auf, wenn ich weiß, dass es soweit ist. Vielleicht hilft das auch bei dir?
lars2002 - Mi 03.02.10 17:36
Hmm hab das ganze dann mal wie folgt geändert, aber das Ergebniss bleibt das selbe...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm1.Button1Click(Sender: TObject); begin ZConnection1.Connected:=true;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin ZConnection1.Connected:=false; end;
procedure TForm1.ZConnection1AfterConnect(Sender: TObject); begin ZIBEventAlerter1.RegisterEvents; end;
procedure TForm1.ZConnection1BeforeDisconnect(Sender: TObject); begin ZIBEventAlerter1.UnRegisterEvents; end;
procedure TForm1.ZIBEventAlerter1EventAlert(Sender: TObject; EventName: string; EventCount: longint; var CancelAlerts: boolean); begin ListBox1.Items.Add(EventName); end; |
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
lars2002 - Do 04.02.10 10:16
Hmm da das beim besten willen nicht klappen will, gibt es andere Möglichkeiten um neue Einträge in der Datenbank möglichst "sofort" zu erkennen um die Listen im Client upzudaten?
Ist z.B. bei jedem Eintrag wird in eine extra Tabelle der Tabellenname wo sich was änderte und nen Zeitstamp geschrieben und die Clients fragen alle paar Sekunden dadurch ab ob sich was geändert hat seit der letzten Nachfrage Performancmäßig vertretbar?
Gruß Lars
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!