INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.06.2020, 06:21 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2020 06:22 von derandyk.)
Beitrag #1

derandyk Offline
CLA
*


Beiträge: 28
Registriert seit: Feb 2012

2015
2007
DE_EN

91054
Deutschland
Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
Hallo Leute,

ich hätte mal eine Frage bezüglich der Erfassung einer Wertänderung in einer SQL Datenbank:

Hintergrund: Ich würde gerne eine LabView Programm Aktion auslösen, sobald es eine Änderung in einem bestimmten Feld in einer SQL Datenbank gibt.

Klar könnte ich den klassischen Weg wählen und in regelmäßigen Abständen den Datenbankwert abfragen.
Beim Nachdenken darüber dachte ich mir jedoch, dass so etwas eigentlich viel eleganter ereignisgesteuert funktionieren könnte.

Deswegen meine Frage: Gibt es eine Möglichkeit in LabView ein dynamisches Ereignis zu generieren, welches bei Änderung eines Datenbankwertes zündet und ich dann mittels Event Struktur verarbeiten kann?

Vielen Dank für Eure Ideen im Voraus.

Andy
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.06.2020, 07:26
Beitrag #2

MScz Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: May 2020

2019,2020
2014
DE_EN



RE: Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
Hallo Andy,

eine Möglichkeit für diese Events kenne ich jetzt nicht.
Es gibt aber Trigger/Events selber in der Datenbank, die das können. Vll. ist das ja der richtige/bessere Weg für dich?

https://www.sqlservertutorial.net/sql-se...e-trigger/

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.06.2020, 13:02
Beitrag #3

derandyk Offline
CLA
*


Beiträge: 28
Registriert seit: Feb 2012

2015
2007
DE_EN

91054
Deutschland
RE: Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
Hallo Max,

danke für Deine Antwort.

Das mit den SQL Triggern hatte ich auch gelesen. Jedoch erzeugt man nach meinem Verständnis nur Datenbank-interne Ereignisse.
Letztlich muss ja aber meine LabView/Windows Applikation davon Wind bekommen.

So wie es aussieht muss ich wohl kontinuierlich abfragen.

Oder fällt jemandem noch ein anderer Geheimtrick ein?

Viele Grüße und Danke im Voraus!

Andy
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.06.2020, 14:53
Beitrag #4

83Daniel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Oct 2017

2019
2010
DE_EN


Deutschland
RE: Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
Ich hatte mal ein ähnliches Problem.

Als Lösung habe ich dann einen ein Byte Wert der SQL Datenbank mit einem Trigger erhöht und diesen kontinuierlich Abgefragt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.06.2020, 15:12
Beitrag #5

th13 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 126
Registriert seit: Oct 2013

2018 SP1
2013
EN


Deutschland
RE: Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
(09.06.2020 13:02 )derandyk schrieb:  Jedoch erzeugt man nach meinem Verständnis nur Datenbank-interne Ereignisse.
Ja.

Jedoch erlauben einige Datenbanken das Ausführen externer Programme auch in den Triggern (Beispiel für MS SQL). Du könntest also ein kleines Programm schreiben, dass deine Applikation über die Änderung informiert, z.B. via Networkstreams.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2020, 09:15
Beitrag #6

derandyk Offline
CLA
*


Beiträge: 28
Registriert seit: Feb 2012

2015
2007
DE_EN

91054
Deutschland
RE: Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
Hallo th13,

der Hinweis ist sehr cool. Danke für den konstruktiven Vorschlag! Das kommt meiner Vorstellung schon näher.

Allerdings sehe ich noch Problemchen, wenn der Datenbankserver nicht auf meinem Rechner läuft sondern irgendwo gehostet ist:
Ich fürchte, dann muss ich dafür sorgen, dass entsprechende Runtime Engines (z.B. von LabView) auf dem Datenbankserver installiert sind.
Ob das immer möglich ist, wage ich zu bezweifeln.

Gibt es unter Umständen eine Möglichkeit so einen Trigger mit ActiveX oder .NET Methoden zu verknüpfen um vielleicht mit Callbacks zu arbeiten?

Viele Grüße

Andy
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2020, 10:43
Beitrag #7

th13 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 126
Registriert seit: Oct 2013

2018 SP1
2013
EN


Deutschland
RE: Kann man Wertänderung in Datenbank ereignisgesteuert erfassen??
(14.07.2020 09:15 )derandyk schrieb:  Gibt es unter Umständen eine Möglichkeit so einen Trigger mit ActiveX oder .NET Methoden zu verknüpfen um vielleicht mit Callbacks zu arbeiten?
Zu .net kann ich leider nix sagen. Da müsstest du in entsprechenden Foren nachfragen, geben wird es da sicherlich etwas.

Wenn du flexibel sein möchtest, schreib ein kleines Programm in einer beliebigen Sprache, dass die Änderung via TCP als formatierten String an eine konfigurierbare IP-Adresse sendet, wo dein LabVIEW-Programm auf einem Port lauscht. Wenn du die Sprache geeignet wählst, kannst du sogar für verschiedene Plattformen kompilieren, und dann kann es dir schon fast egal sein, auf was für einem Rechner die Datenbank läuft.

Wenn absehbar ist, dass du oder deine IT immer Kontrolle über den Datenbankserver haben werden und das auch immer ein Windowsrechner ist, würde ich das Updateprogramm auch in LabVIEW schreiben, dann hast du alle Komponenten in einem LabVIEW-Projekt und verschiedene BuildSpecifications erzeugen die unterschiedlichen Applikationen. Dann kann man auch etwas komfortabler mittels Networkstreams kommunizieren.

Thomas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Speichern bei Wertänderung Planke 6 3.205 07.05.2008 22:02
Letzter Beitrag: jg

Gehe zu: