Ich arbeite mit:
Windows 10
Lazarus 1.4.4
Firebird embedded 2.5.5
Folgende Frage:
Ich möchte übungshalber mit TSQLQuery eine Procedure in Firebird speichern.
(Dass der Code sinnlos ist, ist mir klar, es geht nur um das Üben)
Code: Alles auswählen
SQLQuery1.SQL.ADD('CREATE PROCEDURE NAME_GET_ALL');
SQLQuery1.SQL.ADD('returns(kunr integer, name varchar(100))');
SQLQuery1.SQL.ADD('AS');
SQLQuery1.SQL.ADD('BEGIN');
SQLQuery1.SQL.ADD(' FOR SELECT KuNr, Name');
SQLQuery1.SQL.ADD(' FROM "PERSON"');
SQLQuery1.SQL.ADD(' into :KuNr, :Name');
SQLQuery1.SQL.ADD(' DO');
SQLQuery1.SQL.ADD(' BEGIN');
SQLQuery1.SQL.ADD(' SUSPEND;');
SQLQuery1.SQL.ADD(' END');
SQLQuery1.SQL.ADD('END');
SQLQuery1.ExecSQL;
Fehlermeldung:
IBConnection1: PrepareStatement:
-Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 7, column 8
-?.
Wenn ich den selben Code direkt über TurboBird eingebe, funktioniert die Speicherung, allerdings nur, wenn ich den Code folgendermassen beginne und beende:
set term #;
.
.
.
#
set term ;#
Die set term - Anweisungen kann man aber nicht über SQL-Befehle eingeben, da dann schon in Zeile 1 eine Fehlermeldung entsteht.
(Die Speicherung von Triggern und Generatoren über SQL-Kommandos funktioniert einwandfrei).
Kann mir jemand zeigen wie ich die Procedure über SQL-Kommandos erfolgreich speichern kann?
Vielen Dank für die Hilfe.
Herzliche Grüsse
Verdi