query를 이용해서 트리거를 동적으로 생성하고 있습니다.
그런데... sql문에서 파라메터가 문제인것 같습니다.
파라메터가 없는 트리거는 잘 생성이 되는데 파라메터가 있는 트리거에서 문제가 발생합니다.
예로 아래 쿼리문 중에 변수 no를 선언부분을 빼고 파라메터가 있는 곳에 바로 old.bi_no로 변경해 주면 잘~~ 생성됩니다.
그럼 파라메터를 빼고 생성하라시는 분이 계실지 모르겠지만, 아래 쿼리는 질문의 이해를 돕기위해 작성된 것이고 실제 파라메터를 꼭 선언해야만 하는 부분이 있어서 그렇습니다.
작은 조언이라도 말씀해 주시면 정말 감사하겠습니다.
with IBQuery1 do
begin
close;
sql.clear;
sql.add('CREATE TRIGGER TRI_BIL_BD0 FOR BIL');
sql.add('ACTIVE BEFORE DELETE POSITION 0');
sql.add('AS');
sql.add('DECLARE VARIABLE no INTEGER;'); <-- 임시변수 no를 선언하였습니다.
sql.add('BEGIN');
sql.add(' no = old.bi_no;');
sql.add(' DELETE FROM detail WHERE bd_dno = :no;'); <-- 여기 :no 파라메터를 구분하지 못하는것 같습니다.
sql.add('END');
execsql;
end;
|