AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi mittels Interbase-Event einen Wert an Delphi schicken
Thema durchsuchen
Ansicht
Themen-Optionen

mittels Interbase-Event einen Wert an Delphi schicken

Ein Thema von meggles · begonnen am 12. Jan 2004 · letzter Beitrag vom 16. Dez 2006
Antwort Antwort
Seite 1 von 2  1 2      
meggles
(Gast)

n/a Beiträge
 
#1

mittels Interbase-Event einen Wert an Delphi schicken

  Alt 12. Jan 2004, 18:36
Hallo,
die Referenz zu Interbase 7 verstehe ich so, dass in einem Event der Eventname,
POST_EVENT 'hallo' als auch ein Wert
POST_EVENT new.ID übermittelt werden kann.

a) Ist das nun überhaupt richtig? Oder falsch verstanden... (bitte nicht )
b) Ich verwende aus den IBObjects die IBEvent-Komponente. Mit der kann ich zwar schon ein Event abfangen, jedoch sehe ich in
Delphi-Quellcode:
procedure TForm2.IBEventEventAlert(Sender: TObject; AEventName: String;
  AEventCount: Integer);
nirgendwo die Möglichkeit, auf meinen 'new.ID'-Wert zuzugreifen.

Könnt Ihr mir da helfen?

Vielen Dank,
Simon
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 13. Jan 2004, 07:43
Hi,

hast Du schon mal versucht mit dem AEventName was zu machen?? Steckt vielleicht da der Integer-WErt drin??
Prinzipiell würde ich aber die Events nicht zum Werte verschicken nehmen, da sind die einfach zu unsicher. Zudem machen IB/FB-Events angeblich die Programme instabil, vorallem auf den neueren Windows-Versionen....

Mich würde noch interessieren was Du damit machen willst - vielleicht gibt es noch ne andere Lösung!?

Grüße
Lemmy
  Mit Zitat antworten Zitat
meggles
(Gast)

n/a Beiträge
 
#3

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 13. Jan 2004, 09:29
Moinmoin,
ich programmiere an einem Datenbank-gestützten Emailprogramm, genauer zwei Programme.
Server: Holt für alle Nutzer die Emails per POP ab und schiebt sie in eine Tabelle TAB_EMAIL. Zu jeder Email wird auch der FK_Ordner des Posteingangs eines Users gespeichert.
Auf dies TAB_EMAIL möchte ich einen Afert-Insert-Trigger loslassen:
SQL-Code:
CREATE TRIGGER TAB_EMAIL_AI5_EVENT FOR TAB_EMAIL
ACTIVE AFTER INSERT POSITION 5
AS
DECLARE VARIABLE V_Ordnername VARCHAR(50);
begin
  SELECT o.name FROM tab_ordner o WHERE (o.id = new.ordner_id) INTO :V_Ordnername;
  IF (v_ordnername = 'Posteingang') THEN POST_EVENT new.Ordner_ID;
end
Dieses Event soll für den (betreffenden) Email-Client Zeichen sein, seinen Posteingang zu refrehen, damit die Email gleich sichtbar wird.

Wenn das nicht gehen sollte, müsste ich - sofern ich mit Events arbeiten will - für jeden Nutzer eine Tabelle anlegen, damit ich auch unterschiedliche Events (z.B. POST_EVENT 'maxmustermann') bekomme.

Hoffe, Du kannst mir da helfen - Danke gleich mal!
Simon
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#4

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 13. Jan 2004, 10:24
Hallo,

leider habe ich keine Erfahrung mit IB-Events.
In Oracle kann man bei der Event-Komponente einstellen, auf welche Events überhaupt reagiert wird.

In diesem Fall würde ich es über AEventName abwickeln.
Der setzt sich dann einfach über den Event-Typ- und dem jeweiligen Usernamen zusammen.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 13. Jan 2004, 10:53
Hi meggles,

ich verwende auch grundsätzlich keine Events weil die lt. einigen Beiträgen in verschiedenen Foren die Programme instabil werden lassen.
Zudem werden Events ja auch nicht "gerichtet" an irgendjemand gesendet, sondern die Nachricht wird an alle erreichbaren PC's gesendet, was die Netzwerkbelastung ansteigen lässt.

Zu Deinem Problem: Wenn Du das mit Events machst und den Event "Post abholen" sendest, wird jeder Client der am Laufen ist überprüfen, ob Post für Ihn da ist -> Netzwerk und der DB-Server werden stark belastet. Auch mit einem persönlichen Event wird es nicht wirklich gut.

Vorschlag: Verwende einen TCP/IP Server und Client (z.B. Indy, ICS,..) und versende mit diesem direkt an den entsprechenden PC die Nachricht. Der Client muss sich dazu beim Start am Server anmelden und die IP sowie den Benutzer hinterlegen. Beim Empfang eines Mails überprüft nun der Server ob der User angemeldet ist. WEnn ja, wird an die IP eine entsprechende Nachricht gesendet und der Client kann dann die Mails abholen.

Grüße
Lemmy
  Mit Zitat antworten Zitat
meggles
(Gast)

n/a Beiträge
 
#6

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 13. Jan 2004, 11:09
Potzblitz - das isses !
Vielen Dank!

Simon
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#7

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 16. Dez 2006, 00:42
hallo,
ich sitze heute auch an den events und irgendwie willes mir nicht gelingen die teile zum laufen zu bringen.
ich habe mir das ganez so vorgestellt:
server: post_Event 'PROZENT{55}';

in delphi mit TIBEvents:

Delphi-Quellcode:
procedure TdmEvents.calcEventEventAlert(Sender: TObject; EventName: String;
  EventCount: Integer; var CancelAlerts: Boolean);
begin
if checkZeichen(EventName, 'PROZENT') then //schaut nach ob das "PROZENT" in dem namen drin steckt
  begin
  fmWarten.pbWarten.Position:=StrToInt(GiBWert(EventName)); //wartestatusanzeige...
  Application.ProcessMessages;
  end;
end;
so. autoregister:=True;
Registered:= ???

wenn die Stored procedures im server auf gerufen werden, die diese events generieren, passiert in delphi nix.
also die im debugger in die procedure gesetzten haltepunkte werden nicht angesteuert...


hab ich da irgendwo ein knick in der logik?

wäre für hilfe sehr dankbar .



grüße
Muh macht die kUh
  Mit Zitat antworten Zitat
ol1uw

Registriert seit: 24. Jul 2004
Ort: Freiberg
69 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 16. Dez 2006, 02:35
Hallo,

Also wenn ich mich recht erinnere muss das Event registriert werden um darauf reagieren zukönnen
also sind dynamische Eventnamen so nicht möglich.
Da der Client eben für dieses Event nicht registriert ist.

Uwe
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#9

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 16. Dez 2006, 08:40
Zitat von mojo777:
hallo,
ich sitze heute auch an den events und irgendwie willes mir nicht gelingen die teile zum laufen zu bringen.


hab ich da irgendwo ein knick in der logik?

wäre für hilfe sehr dankbar .

Der Event muss vorher registriert werden.

Ich verwende die Steuerung in einem System, wo sich Clients auf unterschiedliche Server automatisch aufschalten sollen.

procedure TData.InitEvent(CbxKanal1: TComboBox);
var i : Integer;
begin
IB_Events.UnregisterEvents;
IB_Events.Events.Clear;

for i:= 0 to Host.count-1 do begin
if TArbeitsplatz(Host[i]).Arbeitsplatz = CBXKanal1.Text then
begin
EventName := TArbeitsplatz(Host[i]).EventName;
UserID := TArbeitsplatz(Host[i]).UID;
IB_Events.Events.Add(EventName);
end;
end;
IB_Events.RegisterEvents;
end;


Gruß Peter
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: mittels Interbase-Event einen Wert an Delphi schicken

  Alt 16. Dez 2006, 10:31
Alternativ kannst Du auch vom Client aus in regelmässigen Abständen den Interbase Server pollen. Dabei wirst Du dann auch sehr leicht feststellen können, ob überhaupt noch eine Verbindung zum Server besteht... Persönlich bin ich auch kein Freund von solchen Datenbank Events.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz