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
Diese Prozedur gibt 1 zurück falls s eine Zahl ist ansonsten eine 0.
CREATE PROCEDURE ISZAHL (S VARCHAR (100)) RETURNS (ISZAHL SMALLINT) AS declare variable l integer; declare variable i integer; declare variable c char(1); BEGIN l=char_length(s); if (s is null or l=0) then ISZAHL=0; else begin i=1; ISZAHL=1; while (i<=l and ISZAHL=1) do begin c=substring(S from i for 1); if (c between '0' and '9' or (i=1 and c in ('+','-'))) then i=i+1; else ISZAHL=0; end end SUSPEND; ENDTags: Firebird SQL
coalesce - einen Wert ungleich NULL zurückbekommen
select coalesce(Name1,Name2,Name3,'Ich') as IMMERNAME from KUNDEN
nullif - null zurückgeben, falls Parameter 1 = Parameter 2 oder Parameter 1 ist null
select nullif(Name1,ZName1) as NAME from KUNDEN
Tags: Firebird SQL
Auf einem Windowsrechner mit Firebird 2 wurde beim Verbindungsaufbau der Fehler
Cannot attach to password database
ausgelöst.
Ursache: Der Rechner hatte den Namen Com1. Also alle Rechnernamen wie Com1, Com2, Lpt1 usw. vermeiden. Diesen Fehler habe ich erst nach langer Suche mit Hilfe von ProcMon gefunden.
Tags: Firebird Netzwerk Windows
Firebird 2 ist als Paket in Ubuntu enthalten. Leider ist das Paket fehlerhaft. Es wird alles installiert und der Server läuft auch prima. Aber leider ist nach dem Neustart alles verschwunden, da es in ein Verzeichnis installiert wurde, dass beim Neustart gelöscht wird.
Also muss Firebird per "Hand" installiert werden.
Die Installation des Firebirdservers schreibt einen Eintrag in die /etc/inetd.conf.
Damit der Start des Servers funktioniert, ist ein funktionierender inetd, auch Internet-Superserver genannt, notwendig. Standard unter Ubuntu ist der openbsd-inetd, der aber nicht automatisch installiert wird. Nach der Installation des Paketes funktioniert alles einwandfrei.
Tags: Ubuntu Firebird