2009-06-27 4 views
3

Ich bin neu zu Triggern, also entschuldige ich mich, wenn das eine dumme Frage ist.SQLite löst und Ereignisse in anderen Prozessen auslösen

Ist es möglich, dass ein Trigger (oder ein anderer Datenbankmechanismus) ein Ereignis in einem anderen Prozess auslöst. Zum Beispiel muss eine Anwendung auf eine bestimmte Aktivität aufmerksam gemacht werden (Aktualisierung in einer bestimmten Tabelle mit bestimmten Daten), aber ich möchte lieber nicht, dass der Prozess die Datenbank abfragt. Weiß jemand, ob es für einen Trigger (oder vielleicht eine gespeicherte Prozedur) möglich ist, ein Ereignis oder einen anderen asynchronen Benachrichtigungsmechanismus in einem anderen Prozess auszulösen?

[HINWEIS: Empfänger Anwendung ist in C# geschrieben und Datenbank SQLite]

Antwort

1

Ja, einen Trigger schreiben, die Feuer auf Ihren Kriterien und fordert eine externe Funktion, die Sie definiert haben. Ich vergesse, was SQLite benutzerdefinierte externe Funktionen nennt, aber sie sind da.

+1

Sie werden nur als anwendungsdefinierte Funktionen bezeichnet, siehe http://www.sqlite.org/c3ref/create_function.html Ich würde mich auch mit Thomas 'Meinung auseinandersetzen, dass SQLite eine sehr einfache Triggerunterstützung hat. Die Trigger der Version 3 können so gut wie alles andere RDBMS tun und nicht alle RDBMS unterstützen externe Funktionen. –

+0

Der Auslöser ruft nur die externe Funktion in dem Prozess auf, der das Update durchgeführt hat, daher hilft es in diesem Szenario nicht. – Henrik

0

Es kann mit einigen RDBMS, aber nicht mit SQLite möglich sein. SQLite Unterstützung für Trigger ist sehr einfach ...

EDIT: eigentlich könnte es möglich sein, aber die eigentliche Benachrichtigung würde von Ihrem Programm, nicht von SQLite selbst erfolgen. Sie könnten eine Funktion in C# definieren, die Sie einer SQLite-Funktion zuordnen würden, und diese Funktion im Trigger aufrufen.

Verwandte Themen