Firebird Documentation IndexFirebird 2.5 SprachreferenzProzedurale SQL-Anweisungen (PSQL) → Elemente der PSQL
Firebird Home Firebird Home Zurück: Prozedurale SQL-Anweisungen (PSQL)Firebird Documentation IndexNach oben: Prozedurale SQL-Anweisungen (PSQL)Weiter: Gespeicherte Prozeduren

Elemente der PSQL

Inhaltsverzeichnis

DML-Anweisungen mit Parametern
Transaktionen
Modulstruktur

Eine prozedurale Erweiterung kann Deklarationen von lokalen Variablen und Cursorn, Zuweisungen, bedingten Anweisungen, Schleifen, Anweisungen zum Abrufen von benutzerdefinierten Ausnahmen, Fehlerbehandlung und Senden von Nachrichten (Ereignissen) an Clientanwendungen enthalten. Trigger haben Zugriff auf spezielle Kontextvariablen, zwei Arrays, die die NEW-Werte für alle Spalten während der Einfüge- und Aktualisierungsaktivität bzw. die OLD-Werte während der Aktualisierungs- und Löscharbeiten speichern.

Anweisungen, die Metadaten ändern (DDL), sind in PSQL nicht verfügbar.

DML-Anweisungen mit Parametern

Wenn DML-Anweisungen (SELECT, INSERT, UPDATE, DELETE usw.) im Rumpf des Moduls (Prozedur, Trigger oder Block) Parameter verwenden, können nur benannte Parameter verwendet werden und sie müssen „existieren“ bevor die Anweisung diese verwenden kann. Sie können verfügbar gemacht werden, indem sie entweder als Ein- oder Ausgabeparameter im Header des Moduls oder als lokale Variablen in DECLARE [VARIABLE]-Anweisungen im unteren Headerbereich deklariert werden.

Wenn eine DML-Anweisung mit Parametern im PSQL-Code enthalten ist, muss dem Parameternamen in den meisten Situationen ein Doppelpunkt („:“) vorangestellt werden. Der Doppelpunkt ist in PSQL-spezifischer Anweisungssyntax wie Zuweisungen und Bedingungen optional. Das Doppelpunktpräfix für Parameter ist nicht erforderlich, wenn gespeicherte Prozeduren von einem anderen PSQL-Modul oder in DSQL aufgerufen werden.

Transaktionen

Gespeicherte Prozeduren werden im Kontext der Transaktion ausgeführt, in der sie aufgerufen werden. Trigger werden als ein intrinsischer Teil der Operation der DML-Anweisung ausgeführt: ihre Ausführung befindet sich also innerhalb des gleichen Transaktionskontextes wie die Anweisung selbst. Einzelne Transaktionen werden für Datenbank-Trigger gestartet.

Anweisungen, die Transaktionen starten und beenden, sind in PSQL nicht verfügbar, aber es ist möglich, eine Anweisung oder einen Anweisungsblock in einer autonomen Transaktion auszuführen.

Modulstruktur

Inhaltsverzeichnis

Der Modul-Header
Der Modul-Body

PSQL-Codemodule bestehen aus einem Header und einem Body. Die DDL-Anweisungen zum Definieren dieser sind komplexe Anweisungen; das heißt, sie sind Bestandteile einer einzigen Anweisung, die Blöcke von mehreren Anweisungen umfasst. Diese Anweisungen beginnen mit einem Verb (CREATE, ALTER, DROP, RECREATE, CREATE oder ALTER) und enden mit die letzten END-Anweisung des Bodys.

Der Modul-Header

Der Header gibt den Modulnamen an und definiert alle Parameter und Variablen, die im Rumpf verwendet werden. Gespeicherte Prozeduren und PSQL-Blöcke können Ein- und Ausgangsparameter haben. Trigger haben keine Ein- oder Ausgangsparameter.

Der Header eines Triggers zeigt das Datenbankereignis (Einfügen, Aktualisieren oder Löschen oder eine Kombination) und die Betriebsphase (VOR oder NACH diesem Ereignis) an, die dazu führt, dass dieser „ausgelöst wird“.

Der Modul-Body

Der Rumpf eines PSQL-Moduls ist ein Block von Anweisungen, die wie ein Programm in einer logischen Reihenfolge ablaufen. Ein Anweisungsblock ist in einer BEGIN- und einer END-Anweisung enthalten. Der Hauptblock BEGIN ... END kann beliebig viele andere BEGIN ... END-Blöcke enthalten, sowohl eingebettete als auch sequenzielle. Alle Anweisungen außer BEGIN und END werden durch Semikolons (;) abgeschlossen. Kein anderes Zeichen ist als Terminator für PSQL-Anweisungen gültig.

Zurück: Prozedurale SQL-Anweisungen (PSQL)Firebird Documentation IndexNach oben: Prozedurale SQL-Anweisungen (PSQL)Weiter: Gespeicherte Prozeduren
Firebird Documentation IndexFirebird 2.5 SprachreferenzProzedurale SQL-Anweisungen (PSQL) → Elemente der PSQL