mySQL mit Notification
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
mySQL mit Notification
Ich überlege zurzeit, ob ich meine Anwendung auf eine Datenbankkommunikation umstellen kann. Im Moment melden sich Clients an einem zentralen Server an und schicken einander Informationen. Ein paar Sachen macht dabei der Server, wobei das vielleicht ersetzt werden könnte. Allerdings verstehe ich eine Datenbank als Pull-Mechanismus und mir fehlt eine Benachrichtigung des Clients über eine Änderung. Gibt es so etwas?
Mein Ziel ist es, einen kostenlosen Server zu "missbrauchen" und nicht mehr mein eigenes, langsames Gerät dafür zu benutzen. Ich rechne mit 20 bis 100 Clients, die im Sekundenbereich Daten im niedrigen kB-Bereich austauschen.
Mein Ziel ist es, einen kostenlosen Server zu "missbrauchen" und nicht mehr mein eigenes, langsames Gerät dafür zu benutzen. Ich rechne mit 20 bis 100 Clients, die im Sekundenbereich Daten im niedrigen kB-Bereich austauschen.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: mySQL mit Notification
Bei Firebird gibts sowas. Bei MySQL meines Wissens nicht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 240
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Re: mySQL mit Notification
Du könntest versuchen über einen Trigger eine Aktion (also die Benachrichtigung der Clients) anzustossen - hab ich selbst aber auch noch nicht gemacht.
Eb
Eb
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: mySQL mit Notification
Trigger stossen interne Datenbankereignisse an also Stored procedures oder insert,update oder deletes. Damit kann man den Client nicht benachrichtigen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: mySQL mit Notification
Kennst du kostenlose Hoster, die Firebird-DB anbieten? Braucht man auf Clientseite irgendwelche Bibliotheken, damit das läuft?Christian hat geschrieben:Bei Firebird gibts sowas. Bei MySQL meines Wissens nicht.
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: mySQL mit Notification
Die Variante mit den Triggern sieht mir vernünftiger aus.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: mySQL mit Notification
Zeigt mir jetzt einer wie man mit Triggern den Client benachrichtigen kann ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 240
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Re: mySQL mit Notification
Wie gesagt, gemacht habe ich es noch nicht, und es scheint auch nicht ganz einfach zu sein.
Ob es ein kostenloser Hoster anbietet (bzw. ob man es einrichten kann ohne vollständigen administrativen Zugriff auf die Datenbank) wäre die nächste Frage.
Gehen sollte es aber über userdefined Functions.
Aus der doku von mysql 5.1:
http://dev.mysql.com/doc/refman/5.1/en/ ... m-B-5-1-10" onclick="window.open(this.href);return false;
B.5.10: Can triggers call an external application through a UDF?
Yes. For example, a trigger could invoke the sys_exec() UDF available at MySQL Forge here: http://forge.mysql.com/projects/project.php?id=211" onclick="window.open(this.href);return false;
Ob es ein kostenloser Hoster anbietet (bzw. ob man es einrichten kann ohne vollständigen administrativen Zugriff auf die Datenbank) wäre die nächste Frage.
Gehen sollte es aber über userdefined Functions.
Aus der doku von mysql 5.1:
http://dev.mysql.com/doc/refman/5.1/en/ ... m-B-5-1-10" onclick="window.open(this.href);return false;
B.5.10: Can triggers call an external application through a UDF?
Yes. For example, a trigger could invoke the sys_exec() UDF available at MySQL Forge here: http://forge.mysql.com/projects/project.php?id=211" onclick="window.open(this.href);return false;
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: mySQL mit Notification
Das klingt für mich nicht nach einer Lösung. Ich sehe auch nicht, dass es etwas anderes als mySQL kostenlos gibt. Und ob das dann zudem schneller als meine jetzige Lösung (eigener Application Service auf einem Sheeva Plug) wäre, ist auch noch eine ganz andere Frage. Da stecke ich die Zeit wohl besser in eine effizientere Datenaufbereitung.1. sys_exec - executes an arbitrary command, and can thus be used to launch an external application.

Danke für eure Antworten!
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: mySQL mit Notification
Muss man dir denn alles vorkauen..
mit dem Trigger füllst du eine Tabelle mit den Sachen, die du verfolgen willst und stößt mit sys_exec dann eine Routine an, die die Tabelle flusht.
Aber das hier ist kein SQL-Forum, also erwarte nicht, dass wir die kompletten SQL-Source vorkauen. Ebenso verweise ich hier auf Google, sowie die Doku zu SQL-Triggers
mit dem Trigger füllst du eine Tabelle mit den Sachen, die du verfolgen willst und stößt mit sys_exec dann eine Routine an, die die Tabelle flusht.
Aber das hier ist kein SQL-Forum, also erwarte nicht, dass wir die kompletten SQL-Source vorkauen. Ebenso verweise ich hier auf Google, sowie die Doku zu SQL-Triggers
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: mySQL mit Notification
sys_exec hört sich für mich an als ob es eine externe Kommandozeilenanwendung AUF DEM SERVER aufrufen kann, deswegen sind ja noch lange keine Clients informiert die ja auch meisst nicht auf der selben Maschiene wie der server laufen.
Firebird kann aber genau das so wie gefordert aber der op scheint ja nichtmal mitbekommen zu haben das Firebird auch kostenlos ist und sogar richtig kostenlos MySQL ist ja für kommerzielle Projekte kostenpflichtig.
Firebird kann aber genau das so wie gefordert aber der op scheint ja nichtmal mitbekommen zu haben das Firebird auch kostenlos ist und sogar richtig kostenlos MySQL ist ja für kommerzielle Projekte kostenpflichtig.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: mySQL mit Notification
Hat er. Aber leider bieten die meisten Hoster eben nur mySQL an und insbesondere bei den >kostenfreien Hostern< habe ich keinen mit Firebird gefunden.Christian hat geschrieben:...aber der op scheint ja nichtmal mitbekommen zu haben das Firebird auch kostenlos ist.
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: mySQL mit Notification
Und was hindert dich daran, die Notification an den Clienten weiterzuleiten?Christian hat geschrieben:sys_exec hört sich für mich an als ob es eine externe Kommandozeilenanwendung AUF DEM SERVER aufrufen kann, deswegen sind ja noch lange keine Clients informiert die ja auch meisst nicht auf der selben Maschiene wie der server laufen.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: mySQL mit Notification
Vermutlich dass sich die Clients dann erst einmal mit einem Programm verbinden müssten, dass auf dem Server läuft. Aber die ganze Kommunikation soll wohl über die MySQL-Verbindung laufen, wenn ich den Thread richtig verstehe.carli hat geschrieben:Und was hindert dich daran, die Notification an den Clienten weiterzuleiten?Christian hat geschrieben:sys_exec hört sich für mich an als ob es eine externe Kommandozeilenanwendung AUF DEM SERVER aufrufen kann, deswegen sind ja noch lange keine Clients informiert die ja auch meisst nicht auf der selben Maschiene wie der server laufen.
Aber zum eigentlichen Problem: You get what you pay for. Wer einen kostenlosen Hoster benutzt, darf nicht unglaubliche Mechanismen und Möglichkeiten erwarten. Also ist es wohl sinnvoller die Clients auf Polling umzustellen.
BTW: Gibt es überhaupt direkten MySQL-Zugang? Kenne ich nur von wenigen Hostern. Eventuell musst du noch ein PHP-Skript dazwischen schieben.
mfg
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: mySQL mit Notification
Wie funktioniert denn RSS? Pollt der Browser bzw. Reader oder wird er von der DB gepusht?