Autor Beitrag
lars2002
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 03.02.10 14:02 
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
ausblenden 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.

ausblenden 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 user profile iconmatze: Delphi-Tags hinzugefügt
Moderiert von user profile iconmatze: Code- durch Delphi-Tags ersetzt
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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.

_________________
PROGRAMMER: A device for converting coffee into software.
lars2002 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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?

_________________
PROGRAMMER: A device for converting coffee into software.
lars2002 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 03.02.10 17:36 
Hmm hab das ganze dann mal wie folgt geändert, aber das Ergebniss bleibt das selbe...

ausblenden 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 user profile iconmatze: Code- durch Delphi-Tags ersetzt
lars2002 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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