CREATE PROCEDURE SEL_PH (
SUSIN2 VARCHAR(16)
) RETURNS (
AREA VARCHAR(15),
CHUR VARCHAR(45),
PH VARCHAR(16)
) AS
BEGIN
SELECT JMAREA,JMCHUR,JMPH
FROM JM1
WHERE JMPH = :SUSIN2
OR JMPH2 = :SUSIN2
OR JMPH3 = :SUSIN2
INTO :AREA, :CHUR, :PH;
SUSPEND;
END
이문장을 동적 생성하고자 합니다.
그래서 이렇게 코딩을 해보았습니다.
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.add('CREATE PROCEDURE SEL_PH( ');
ibquery1.sql.add('SUSIN2 VARCHAR(16)');
ibquery1.sql.add(' ) RETURNS ( ');
ibquery1.sql.add('AREA VARCHAR(15),');
ibquery1.sql.add('CHUR VARCHAR(45),');
ibquery1.sql.add('PH VARCHAR(16) ');
ibquery1.sql.add(') AS');
ibquery1.sql.add(' BEGIN');
ibquery1.sql.add(' SELECT JMAREA,JMCHUR,JMPH');
ibquery1.sql.add(' FROM JM1');
ibquery1.sql.add(' WHERE JMPH = :SUSIN2');
ibquery1.sql.add(' OR JMPH2 = :SUSIN2');
ibquery1.sql.add(' OR JMPH3 = :SUSIN2');
ibquery1.sql.add(' INTO :area,:chur,:ph');
ibquery1.sql.add(' SUSPEND;');
ibquery1.sql.add(' END');
ibquery1.ExecSQL;
ibquery1.sql.add(' INTO :area,:chur,:ph'); //이부분에서 ?' process stopped
라는 메세지가 드네요
어찌 처리해야될지 고수님들의 한수 의견 듣고자 합니다.
|