wieder einmal habe ich einen Fehler den ich bis jetzt nicht lösen konnte und wende mich deswegen an Euch.
Über IB-Expert kann ich folgendes SQL-Statement ohne Probleme ausführen, über das TSQLScript bekomme ich eine Fehlermeldung.
Code: Alles auswählen
SET TERM ^ ;
ALTER TRIGGER FLATS_LOG
ACTIVE BEFORE INSERT OR UPDATE OR DELETE POSITION 999
AS
declare variable alogid integer;
declare variable aDATA_ID integer;
declare variable aTYP integer;
begin
aDATA_ID = -2;
aTYP = -2;
IF (inserting) then
begin
aDATA_ID = new.id;
aTYP = 0;
end
else IF (updating) then
begin
aDATA_ID = new.id;
aTYP = 1;
end
else IF (deleting) then
begin
aDATA_ID = old.id;
aTYP = 2;
end
SELECT ologid FROM insert_into_log(:aDATA_ID,:aTYP,'FLATS',-1) INTO alogid;
IF (inserting) then
begin
execute procedure insert_into_log_fields(alogid, 'city_part_id', new.city_part_id, NULL);
end
else IF (updating) then
begin
execute procedure insert_into_log_fields(alogid, 'city_part_id', new.city_part_id, old.city_part_id);
end
else IF (deleting) then
begin
execute procedure insert_into_log_fields(alogid, 'city_part_id', NULL, old.city_part_id);
end
end
^
SET TERM ; ^
PrepareStatement :
-Dynamic SQL Error
-SQL error code = -804
-Data type unknown
Ich konnte den Fehler soweit einschränken, dass es an dem Select-Statement liegt. Ohne das Select-Statement wird das Statement ordentlich ausgeführt. Ich habe auch schon versucht das Ergebnis zu explizit in eine Integer-Wert zu wandeln:
Code: Alles auswählen
SELECT cast(ologid AS integer) FROM insert_into_log(:aDATA_ID,:aTYP,'FLATS',-1) INTO alogid;
Vielen Dank im Vorraus!
PS: Das selbe Problem habe ich auch bei erstellen von Funktionen, Prozedure und Views.