작성하신 SP의 문법에 문제가 없다면
IBX 컴포넌트의 버전을 6.05버전 이상으로 업그레이드하셔서
IBScript컴포넌트를 이용해서 동적으로 생성하시면 될겁니다.
저도 스크립트땜에 고생좀 했었는데
위에 컴포넌트를 사용하면 될겁니다.^^
저같은경우 트리거를 새로 만들어야할경우
자동업데이트에서 사용자컴퓨터에 스크립트파일(*.SQL)을 다운받아서
IBScript컴포넌트로 생성시켰습니다.
테이블이나 SP, 트리거등의 존재여부는 팁란으로 보시면 아실겁니다..그럼^^
나종길 님이 쓰신 글 :
: 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
: 라는 메세지가 드네요
: 어찌 처리해야될지 고수님들의 한수 의견 듣고자 합니다.
:
|