Db2 如何以固定格式RPG查询表并使用if条件检查记录?

Db2 如何以固定格式RPG查询表并使用if条件检查记录?,db2,ibm-midrange,rpgle,rpg,rational-developer-for-i,Db2,Ibm Midrange,Rpgle,Rpg,Rational Developer For I,因此,假设一个表选项卡有一个列值,其中包含“SDM”和“LB”作为条目。列大小为12个字符。我想使用固定格式的RPG查询表,并在稍后的IF条件下进行比较。逻辑很简单,但我不确定语法 如果它是一种自由格式,我可以简单地将记录放入游标中,在循环中获取数据,然后在获取匹配记录时离开。但是,我不确定我们是否可以使用固定格式的SQL,或者我必须做一个链,但我仍然不知道语法 执行sql 为声明C1游标 从选项卡中选择值 执行sql 开C1 Dou-sqlcod0; 执行sql 将C1带入:估值器 If (v

因此,假设一个表选项卡有一个列值,其中包含“SDM”和“LB”作为条目。列大小为12个字符。我想使用固定格式的RPG查询表,并在稍后的IF条件下进行比较。逻辑很简单,但我不确定语法

如果它是一种自由格式,我可以简单地将记录放入游标中,在循环中获取数据,然后在获取匹配记录时离开。但是,我不确定我们是否可以使用固定格式的SQL,或者我必须做一个链,但我仍然不知道语法

执行sql 为声明C1游标 从选项卡中选择值

执行sql 开C1

Dou-sqlcod0; 执行sql 将C1带入:估值器

If (valueRes <> userVal); // userVal is what we get from user     
  Leave; //or set some flag to 0 to indicate               
Endif;                
     
Enddo

执行sql 关闭C1

或 我们可以通过一个子例程来完成,并返回true/false或1/0来指示是否找到了记录


在发布答案时,请同时包含变量声明。

您可以使用固定格式执行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

看起来你没有读过很多关于这个的文档。也许你找不到?这里有一个链接到