execute block returns (txt varchar(10)) as declare variable i int=1; begin while (i<10) do begin txt=case i when 1 then 'Eins' when 2 then 'Zwei' when 3 then 'Drei' else '>3' end; i=i+1; suspend; end endTags: Firebird
declare variable i HW_INT16=2;Tags: Firebird
Die Ohrnummer muss 14-stellig mit 2 Buchstaben und 12 Zahlen sein
OHR [not] similar to '[A-Z]{2}[0-9]{12}'
Die Herdbuchnummer ist 8 (mit BIC) oder 6-stellig nur mit Ziffern
HB [not] similar to '([0-9]{6}|[0-9]{8})'Tags: Firebird SQL
sudo apt-get install libfbclient2Tags: Ubuntu Firebird Kubuntu
Eine SQL-Statement nutzen, das alle Merkmale der Stored Procedure aufweist, ohne das dieses in der Datenbank definiert ist. Das ist mit "EXECUTE BLOCK" möglich:
EXECUTE BLOCK [(<inparams>
)]
[RETURNS (<outparams>
)] AS [<var-decls>
]
BEGIN
PSQL statement(s)
END
<inparams>
::=paramname
type
= ? [,<inparams>
]
<outparams>
::=paramname
type
[,<outparams>
]
<var-decls>
::=<var-decl>
[<var-decls>
]
<var-decl>
::= DECLARE [VARIABLE]varname
type
[=initvalue
];
Beispiel: Ausgabe von 100 Sätzen mit 2 Feldern
execute block returns (NR integer,Txt varchar(100)) as declare variable i integer; begin i=0; while (i<100) do begin i=i+1; NR=i; Txt='Satz: '||i; suspend; end end
Tags: Firebird
ab Firebird 1.5 kann man einen Trigger erstellen, der für mehrere Ereignisse zuständig ist.
Beispiel:
create trigger trigger_adressen for adressen before insert or update or delete as begin ... end
Um zu erkennen, in welche Aktion der Tabelle aufgerufen wurde, gibt es die neuen Variablen
INSERTING, UPDATING und DELETING
Beispiel:
create trigger trigger_adressen for adressen before insert or update or delete as begin if (deleting) then proc(old.ID); else proc(new.ID); end
Tags: Firebird SQL