動的 SQL のやり方、ということでこちらをちょっと強引に動的 SQL に書き換えてみました。
H DFTACTGRP(*NO)
D CustRow E DS ExtName(QCUSTCDT) Qualified
D LastName E EXTFLD(LstNam)
*
D State S 2A
D SQLstmt S 500A INZ('SELECT * -
D FROM QIWS/QCUSTCDT -
D WHERE STATE = ?')
/Free
EXEC SQL PREPARE Stmt1 FROM :SQLstmt ;
EXEC SQL DECLARE CustCSR Cursor For Stmt1 ;
State = 'MN' ;
EXEC SQL OPEN CustCSR USING :State;
EXEC SQL FETCH NEXT FROM CustCSR INTO :CustRow ;
If %Subst(SQLSTT:1:2) = '00' ;
DSPLY CustRow.LastName ;
Else ;
DSPLY SQLERR ;
Leave ;
EndIf ;
EndDo ;
EXEC SQL CLOSE CustCSR ;
*inlr = *on ;
return ;
/End-Free
|
|
|