Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Netzwerkinfo über Änderungen in der DB (https://www.delphipraxis.net/134371-netzwerkinfo-ueber-aenderungen-der-db.html)

RPW 20. Mai 2009 19:08

Datenbank: MySQL • Version: 5 • Zugriff über: MySQLAccess

Netzwerkinfo über Änderungen in der DB
 
Hi,

wie erfährt mein Programm, welches im Netzwerk auf mehreren Rechnern gleichzeitig läuft, ob es eine Änderung an den Daten gegeben hat (z.Bsp. durch einen User), um die Anzeige zu aktualisieren.
Ich will aber nicht mit NetSend und Konsorten arbeiten, und auch nicht mit TTimer...
Gibs irgend eine Message, die man im Netz abfangen kann oder funkt MySQL, wenn sich was geändert hat?

Vielleicht hat ja jemand einen Gedanken hierzu ...

Gruß Ralph

mjustin 20. Mai 2009 19:16

Re: Netzwerkinfo über Änderungen in der DB
 
Zitat:

Zitat von RPW
Hi,

wie erfährt mein Programm, welches im Netzwerk auf mehreren Rechnern gleichzeitig läuft, ob es eine Änderung an den Daten gegeben hat (z.Bsp. durch einen User), um die Anzeige zu aktualisieren.
Ich will aber nicht mit NetSend und Konsorten arbeiten, und auch nicht mit TTimer...
Gibs irgend eine Message, die man im Netz abfangen kann oder funkt MySQL, wenn sich was geändert hat?

Vielleicht hat ja jemand einen Gedanken hierzu ...

Gruß Ralph

Auf unterster Ebene kann man Sockets (TCP/IP) verwenden, z.B. Synapse oder Indy. Jede Anwendung, die Datensätze schreibt, müsste dann einen "Rundspruch" an alle anderen versenden. Auf der Basis eines 'Chat'-Programms ist das sicher nicht sehr aufwendig.

Alternativ könnte man eine Statustabelle verwenden, in der über Trigger ein Zeitstempel eingetragen wird, sobald eine Tabelle neue / geänderte / gelöschte Sätze hat. Diesen Stempel kann man dann regelmäßig abfragen, Vorteil: es geht schneller als Abfragen auf die eigentlichen Daten-Tabellen - aber dafür braucht man wieder einen Timer)

hoika 20. Mai 2009 19:17

Re: Netzwerkinfo über Änderungen in der DB
 
Hallo,

ich schreibe (per Client oder Trigger) ein Log mit.
z.B. Datum/Uhrzeit der letzten Änderung einer Tabelle.


Heiko

RPW 22. Mai 2009 11:22

Re: Netzwerkinfo über Änderungen in der DB
 
Hallo mjustin, hoika,

danke für die Antworten, wie mache ich das mit Trigger und Log-File, kenn mich mit MySQL nicht sonderlich gut aus.

Gruß Ralph

mkinzler 22. Mai 2009 11:37

Re: Netzwerkinfo über Änderungen in der DB
 
http://dev.mysql.com/doc/refman/5.1/...e-trigger.html

RPW 22. Mai 2009 15:58

Re: Netzwerkinfo über Änderungen in der DB
 
mmhhh, ja, das geht ja recht gut, aber letztendlich muß der Client ja doch beim Server anfragen, ob sich was geändert hat, da kann man ja auch alle paar Minuten ein Refresh machen (wenns von der Zeit her keine Probleme gibt). Ich dachte, es gibt eine Möglichkeit der Information in die andere Richtung, vom Server an alle verbundenen Clients ... hallo, hier hat sich was geändert, kannste mal aktualisieren ...
Muß doch irgendwie gehen.

Gruß Ralph

mkinzler 22. Mai 2009 16:08

Re: Netzwerkinfo über Änderungen in der DB
 
Im Trigger könnte man die Clients benachrichtigen ( IPC o.ä)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 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