인터베이스에서 트리거를 IBConsole이 아닌 동적으로 SQL문으로 생성하려하는데 에러가 납니다. 아래의 두 가지 다 에러가 나는군요.
첫번째 시도
IBSQL.Close; IBSQL.SQL.Clear;
IBSQL.SQL.Add('SET TERM!!;');
IBSQL.SQL.Add('CREATE TRIGGER INC_BCD FOR BSMASTER ACTIVE BEFORE INSERT POSITION 0');
IBSQL.SQL.Add('AS');
IBSQL.SQL.ADD('DECLARE VARIABLE MAX_NUM INTEGER;');
IBSQL.SQL.ADD('BEGIN');
IBSQL.SQL.ADD('SELECT MAX(CD) FROM BSMASTER INTO :MAX_NUM;');
IBSQL.SQL.ADD('IF (MAX_NUM IS NULL) THEN MAX_NUM=1;');
IBSQL.SQL.ADD('NEW.CD=MAX_NUM;');
IBSQL.SQL.Add('END!!');
IBSQL.SQL.Add('SET TERM;!!');
IBSQL.ExecQuery;
두번째 시도
IBSQL.Close; IBSQL.SQL.Clear;
// IBSQL.SQL.Add('SET TERM!!;');
IBSQL.SQL.Add('CREATE TRIGGER INC_BCD FOR BSMASTER ACTIVE BEFORE INSERT POSITION 0');
IBSQL.SQL.Add('AS');
IBSQL.SQL.ADD('DECLARE VARIABLE MAX_NUM INTEGER;');
IBSQL.SQL.ADD('BEGIN');
IBSQL.SQL.ADD('SELECT MAX(CD) FROM BSMASTER INTO :MAX_NUM;');
IBSQL.SQL.ADD('IF (MAX_NUM IS NULL) THEN MAX_NUM=1;');
IBSQL.SQL.ADD('NEW.CD=MAX_NUM;');
IBSQL.SQL.Add('END'); //IBSQL.SQL.Add('END!!');
// IBSQL.SQL.Add('SET TERM;!!');
IBSQL.ExecQuery;
어린아이 가나다라 가르키는셈 치시고 아시는 분께서는 도와주시면 고맙겠습니다.
|