2014-06-06 49 views
0

一些背景...... 我有20个+文件。
我从预建的表格中读取这些文件名,构建一个子文件屏幕。 我选择1个文件,然后用选定的文件内容构建另一个屏幕。 我再选择我想要删除的记录,到目前为止好...AS400 SQL动态删除问题

eval  MySQL = stat3 + %trimr(scrwcrd) + STAT3B 

我的SQL语句读取调试

MySQL = DELETE FROM FILESEL WHERE K00001 = ? with NC 

PREPARE STAT3 from :MYSQL 

EXECUTE STAT3 using :PROD 

其中:PROD是从画面选择

提供的变量

我SQLCOD在100与sqlstt = 2000结束之后未找到删除的指示EXECUTE ROW。 现在事实并非如此。我看到选定的文件上的记录,我看到PROD的价值使用调试任何想法...

+1

一个想法:一些标点符号,段落标记,代码高亮,等将使这也许实际上清晰,并随机附送感,空话的不长的博客。 –

+0

这里是 eval mysql3 = stat3 +%trimr(scrwcrd)+ STAT3A + STAT3B – DXP

+0

@MarcB因为DXP是一个全新的用户,它似乎更有帮助或者指向他们的降价指令,或者做他们的编辑。那些熟悉IBM-中端环境(标记为这样)的人可能可以阅读代码。对于第一篇文章来说,这并不算太坏。 – WarrenT

回答

1

什么数据类型和长度是K00001字段和:PROD主机变量?

平等可能是一个问题。如果它们是字符字段,则可能需要TRIM/%TRIM这些值才能匹配。

+0

k00001&:prod都是7数字。删除语句在程序外部执行时工作正常,找到并删除所需的记录。 – DXP

+0

由于SQL语句包含一个参数标记,因此**不能运行**“程序外部”。但它表明参数标记正被替换为一个值,该值与'K00001'的任何值都不匹配,或者不匹配为适当的数据类型。我们需要在语句运行时看到'K00001'和'PROD'的实际定义,以及可能的'PROD'的调试值。 – user2338816