Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Statement automatisch ausführen (https://www.delphipraxis.net/192719-sql-statement-automatisch-ausfuehren.html)

Helmi 13. Mai 2017 18:50

Datenbank: Firebird • Version: 2.5 • Zugriff über: ZEOS

SQL-Statement automatisch ausführen
 
Hallo,

ist es möglich ein SQL-Statement automatisch wieder auszuführen, wenn ein neuer Datensatz hinzugefügt wird,
der dem Statement entspricht?

nahpets 13. Mai 2017 19:10

AW: SQL-Statement automatisch ausführen
 
Per Trigger?

Beschreib' bitte mal etwas genauer, was Du vorhast.
Aufgrund Deiner Beschreibung hab' ich noch nicht wirklich so 'ne richtige Vorstellung von dem, was Du beabsichtigst.

Meinst Du sowas in der Art:

Wenn Spalte Frage = 'life, the universe and everything'
dann führe das Statement 'update tabelle set Antwort = 42' aus?

Also quasi abhängig von irgendeinem Spalteninhalt eines neu eingefügten Datensatzes soll irgendein definiertes Statement ausgeführt werden?

Sowas?
http://stackoverflow.com/questions/9...update-trigger

jobo 13. Mai 2017 19:14

AW: SQL-Statement automatisch ausführen
 
Bei sowas muss man etwas drauf achten, was man dann im Trigger macht.
Ein Trigger der auf einer bestimmten Tabelle bei Änderung anschlägt und die gleiche Tabelle wieder ändert, ist jenachdem (Fall, RDBMS,..) problematisch.

Helmi 13. Mai 2017 19:17

AW: SQL-Statement automatisch ausführen
 
Hallo,

ich dachte mir schon, dass das nicht wirklich verständlich ist :-)

Folgendes Szenario:
Ich hab auf dem Server eine Software laufen, die, alle 3 Minuten etwa, Werte von einem Temperatur- und Feuchtigkeitssensor erhält und diese
in eine Firebird-Datenbank schreibt.

Auf dem Client läuft eine Software, die Daten aus der Datenbank liest und diese in einem DBChart anzeigt.
Wenn nun die Daten des aktuellen Tages angezeigt werden, dann hätt ich gerne, dass alle weiteren neuen Datensätze dieses Tages angezeigt werden, sobald diese "kommen", sprich in die Datenbank geschrieben werden.

nahpets 13. Mai 2017 19:23

AW: SQL-Statement automatisch ausführen
 
Du möchtest also von der Datenbank auf dem Server eine Info an den Client bekommen, dass der doch bitte die Daten neu einlese, da es was Neues gibt?

Gibt's eventuell dort ein paar Anregungen? http://www.firebirdsql.org/file/docu...ird_events.pdf

jobo 13. Mai 2017 20:05

AW: SQL-Statement automatisch ausführen
 
Vermutlich kommen die Sensordaten halbwegs kontinuierlich.
Die Eventorgie würde ich mir also kneifen und einfach in einem einstellbaren Intervall das Diagramm neu zeichnen.

Aber klar, die Firebird Events sind eine Möglichkeit.

nahpets 13. Mai 2017 20:13

AW: SQL-Statement automatisch ausführen
 
Zitat:

Zitat von Helmi (Beitrag 1371287)
Wenn nun die Daten des aktuellen Tages angezeigt werden, dann hätt ich gerne, dass alle weiteren neuen Datensätze dieses Tages angezeigt werden, sobald diese "kommen", sprich in die Datenbank geschrieben werden.

Hier würd' ich 'nen Timer nehmen, der abhängig vom Datum aktiviert wird und dann alle drei Minuten die Daten neu einliest.

Helmi 13. Mai 2017 21:09

AW: SQL-Statement automatisch ausführen
 
Zitat:

Zitat von nahpets (Beitrag 1371298)
Hier würd' ich 'nen Timer nehmen, der abhängig vom Datum aktiviert wird und dann alle drei Minuten die Daten neu einliest.

Es wird vermutlich darauf rauslaufen, auch wenn ich das mal mit Events versuchen möchte.

Trigger hab ich angelegt und scheint zu laufen.
Nur im ZIBEventAlerter scheint nichts anzukommen.

Olli73 14. Mai 2017 12:02

AW: SQL-Statement automatisch ausführen
 
Zitat:

Zitat von Helmi (Beitrag 1371305)
Trigger hab ich angelegt und scheint zu laufen.
Nur im ZIBEventAlerter scheint nichts anzukommen.


Mit IB-Events hatte ich teilweise Probleme, wenn am Server in der Firewall nur Port 3050 freigegeben war. Besser ist es hier die FbServer.exe freizugeben. Da werden noch andere Ports benutzt.

Helmi 14. Mai 2017 18:57

AW: SQL-Statement automatisch ausführen
 
Zitat:

Zitat von Olli73 (Beitrag 1371337)
Zitat:

Zitat von Helmi (Beitrag 1371305)
Trigger hab ich angelegt und scheint zu laufen.
Nur im ZIBEventAlerter scheint nichts anzukommen.


Mit IB-Events hatte ich teilweise Probleme, wenn am Server in der Firewall nur Port 3050 freigegeben war. Besser ist es hier die FbServer.exe freizugeben. Da werden noch andere Ports benutzt.

ich hab jetzt die Exe freigegeben


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