如何在 Fixed format RPG 中查询 table 并使用 if-condition 检查记录?
How to query a table in Fixed format RPG and check record with if-condition?
所以,假设 table ##TAB 有一个列 #VALUE,其中包含 'SDM' 和 'LB' 作为条目。列大小为 12 个字符。我想使用 Fixed-Format RPG 查询 table 并稍后在 IF 条件下进行比较。逻辑很简单,但我不确定语法。
如果它是一种自由格式,我可以简单地将记录放入游标中,循环获取数据,并在获得匹配记录时离开。但是,我不确定我们是否可以在固定格式中使用 SQL,或者我必须做一个链(仍然不知道语法)。
exec sql
Declare C1 cursor for
Select #VALUE from ##TAB;
exec sql
Open C1;
Dou sqlcod <> 0;
exec sql
Fetch C1 INTO :valueRes;
If (valueRes <> userVal); // userVal is what we get from user
Leave; //or set some flag to 0 to indicate
Endif;
Enddo;
exec sql
Close C1;
或
我们可以通过一个子程序和returntrue/false或者1/0来表示是否找到记录。
发布答案时,请同时包含变量声明。
您可以执行固定格式的 EXEC SQL。先放 C/EXEC SQL(从第 6 列开始),然后为所有续行放 C+,然后以 C/END-EXEC 结束。而且最后没有分号。
C/exec sql
C+ Declare C1 cursor for
C+ Select #VALUE from ##TAB
C/end-exec
所以,假设 table ##TAB 有一个列 #VALUE,其中包含 'SDM' 和 'LB' 作为条目。列大小为 12 个字符。我想使用 Fixed-Format RPG 查询 table 并稍后在 IF 条件下进行比较。逻辑很简单,但我不确定语法。
如果它是一种自由格式,我可以简单地将记录放入游标中,循环获取数据,并在获得匹配记录时离开。但是,我不确定我们是否可以在固定格式中使用 SQL,或者我必须做一个链(仍然不知道语法)。
exec sql
Declare C1 cursor for
Select #VALUE from ##TAB;
exec sql
Open C1;
Dou sqlcod <> 0;
exec sql
Fetch C1 INTO :valueRes;
If (valueRes <> userVal); // userVal is what we get from user
Leave; //or set some flag to 0 to indicate
Endif;
Enddo;
exec sql
Close C1;
或 我们可以通过一个子程序和returntrue/false或者1/0来表示是否找到记录。
发布答案时,请同时包含变量声明。
您可以执行固定格式的 EXEC SQL。先放 C/EXEC SQL(从第 6 列开始),然后为所有续行放 C+,然后以 C/END-EXEC 结束。而且最后没有分号。
C/exec sql
C+ Declare C1 cursor for
C+ Select #VALUE from ##TAB
C/end-exec