Wenn ein Event-Handler ausgelöst wird, richtet das System eine temporäre interne Verbindung ein, auf der der Event-Handler ausgeführt wird. Der Handler wird nicht über die Verbindung ausgeführt, die sie ausgelöst hat, und daher sind Anweisungen wie MESSAGE ... TO CLIENT, die mit der Clientanwendung interagieren, in Event-Handlern nicht sinnvoll. Außerdem sind Anweisungen nicht zulässig, die Ergebnismengen zurückgeben.
Die temporäre Verbindung, auf der die Verarbeitungsroutine läuft, wird in die Zählung der Verbindungen für die Lizenzierung nicht einbezogen, und die durch die Option login_procedure angegebene Prozedur wird bei Ereignisverbindungen nicht ausgeführt.
Für die Ereigniserstellung ist die DBA-Berechtigung erforderlich, und Ereignisse werden mit den Berechtigungen ihres Erstellers ausgeführt. Wenn die Event-Handler ohne DBA-Berechtigung ausgeführt werden sollen, rufen Sie eine Prozedur aus der Verarbeitungsroutine auf, da gespeicherte Prozeduren mit den Berechtigungen ihres Erstellers ablaufen.
Etwaige Ereignisfehler werden im Meldungslog des Datenbankservers protokolliert.
Die Transaktion in einem Event-Handler wird festgeschrieben, wenn keine Fehler während der Ausführung erkannt werden, und sie wird zurückgesetzt, wenn Fehler erkannt werden.
Wenn ein Fehler in einer atomaren zusammengesetzten Anweisung auftritt und diese Anweisung eine Ausnahmeroutine hat, die den Fehler handhabt, werden die in der Anweisung durchgeführten Änderungen nicht festgeschrieben. Wenn die Ausnahmeroutine den Fehler nicht behandelt oder einen weiteren Fehler bewirkt (einschließlich via RESIGNAL), werden die in der atomaren Anweisung durchgeführten Änderungen rückgängig gemacht.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |