标题:[求助]PB调用存储过程遇到的问题
取消只看楼主
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
 问题点数:0 回复次数:4 
[求助]PB调用存储过程遇到的问题

在我用PB调用我用SQL COBOL程序写的存储过程时遇到以下的问题:

这个存储过程的名称为CLM055, 下面就是我的SQL: 输入参数分别是CLNTNUM1, CLNTNUM2, CLNTNUM3, CLNTNUM4, CLNTNUM5

select eurd.chdrnum,eurd.crtable,
from eurd left join eurt on eurd.clmnum= eurt.aplnum
WHERE CLNTCLN.CLNTNUM IN (:clntnum1, :clntnum2, :clntnum3, :clntnum4, :clntnum5)
(非常长,省略了一些部分)

我在PB的数据窗口调用时, 语句是这样的:

execute CLM055;0 CLNTNUM1 = :CLNTNUM1, CLNTNUM2 = :CLNTNUM2, CLNTNUM3 = :CLNTNUM3, CLNTNUM4 = :CLNTNUM4, CLNTNUM5 = :CLNTNUM5

我的本来的意思是想,虽然需要输入5个参数, 但是并不要求必须五个都输入, 只需要其中一个参数有数值, 就可以带出数据的. 所以我当时的SQL是用的参数前面是用了IN 的, 并且这个SQL也成功带出正确的数据.

但是在PB上调用的结果并不成功, 无论我5个参数都输入值(clntnum1,2,3,4,5都输入值), 或者是输入一个数值其他四个为空(clntnum1='5004421',clntnum2,3,4,5我只输入一个空格), 都会出这条信息: Result of Select more than one row.


请教怎样在PB上调用才可以达到我所说的那种效果呢? 是不是在调用语句或者调用方法上出问题了呢? 请高人帮忙

搜索更多相关主题的帖子: SQL eurd CLNTNUM eurt 
2007-11-14 16:57
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
得分:0 
忘记说了, 在Specify Retrival Arguments那里, 我也是设置了5个输入参数, 就是CLNTNUM1, CLNTNUM2,CLNTNUM3,CLNTNUM4,CLNTNUM5
2007-11-14 17:00
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
得分:0 
请问sqlca.autocommit设置为true是需要在PB程序里面写入还是在数据窗口设置, 请指教是在哪里设置的? 万分感激!!!!!!!!!!!!!!!
2007-11-15 11:00
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
得分:0 

试过了, 没有任何的区别. EXECUTE CLM055 USING :CLNTNUM1,:CLNTNUM2,:CLNTNUM3,:CLNTNUM4,:CLNTNUM5 ; 跟我原来调用的语句基本上没有什么区别, 得出来的结果也是弹出同样的信息.

2007-11-15 11:20
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
得分:0 
不要意思, 原来刚才改了以后没有保存. 现在重新试了一次您的语句, 直接出TOKEN USING is NOT VALID这样的提示. 用USING不行
2007-11-15 11:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-185931-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124437 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved