Sicher, dass :AKTJAHR von IBSQLDD als Variable und nicht als Parameter verwendet wird?
Ja, :AKTJAHR wird als Variable benutzt.
Denke mal da fehlt das
SET TERM ^ ;
am Anfang und entsprechend
SET TERM ; ^
am Ende
Das muss nur bei einem Script gemacht werden.
lass mal die umlaute und sonderzeichen in den kommentaren weg
(metadaten sind
Unicode, ggf kannst du die dann mit passender connection auch ausführen, weglassen ist aber einfacher)
Danke. Genau das war es. "ö" durch "oe" getauscht und schon hat es funktioniert.
Glaube auch, dass das SET TERM da falsch ist. Ich schreibe allerdings aus anderem Grund. Du wirst doch hoffentlich nicht Generatoren / Sequences für Datenhaltung missbrauchen ?
Da wimmelt es ja nur so mit gen_id, alter sequence etc. Durch solche Aktionen wird ja das ganze Firebird - Transaktions - Management aus den Angeln gehoben. Wozu das ?
Wie gesagt: SET TERM ist nicht nötig. Ich benutze zwei Zähler (Rechnungsnummer) für Eingangs- bzw. Ausgangsrechnungen. Die am Jahresanfang zurückgesetzt werden. Was das aktuelle Jahr ist merke ich mir in einer Tabelle. Sollte nachträglich noch eine rechnung für ein vergangenes Jahr erstellt werden, hole ich die maximale Rechnungsnummer und nehme dann die nächste freie. Das kann im Mehrbenutzerbetrieb schief gehen, aber im Falle einer
Exception wiederhole ich den Schritt einfach. Außerdem ist dieser Fall extrem selten.