Hallo zusammen,
ich habe folgendes Problem:
ich möchte per
SQL Befehl über die IB_Cursor-Komponente eine Prozedur in der Datenbank verändern. Dazu verwende ich das folgende Code-Konstrukt:
SQL-Code:
ALTER PROCEDURE Test (Index CHAR(10))
RETURNS
(
Wert1 FLOAT, WERT2 FLOAT, Diff FLOAT
)
AS
BEGIN
IF (:Index = "") THEN SELECT anderenWert FROM Tabelle INTO :Index; (*)
FOR SELECT A, B FROM Tabelle2
WHERE (Tabelle2.Index = :Index)
INTO :Wert1, :Wert2
DO
BEGIN
Diff=- :Wert1 - :Wert2;
END
END
Das merkwürdige ist nun, dass genau dieses Statement beim Ausführen im Interbase-Client ohne Fehlermeldung funktioniert. In Delphi hingegen wird nach dem Aufruf von
Delphi-Quellcode:
IB_Query.SQL.Text := ...;
IB_Query.prepare();
eine
Exception geworfen.
Die Ursache hierfür muss in der Codezeile
(*) liegen, da der Fehler ohne diese Abfrage nicht auftritt.
Allerdings weiß ich nicht, wie ich dieses Problem umgehen kann.
Meine Vermutung ist, dass es sich um ein Problem mit dem Trennzeichen ";" handelt.
Im Voraus bereits vielen Dank
Schöne Grüße
Jochen