请教各位大师:有关不能调用存储过程的问题.
请教:有关不能调用存储过程的问题.
作 者:kingox
所属论坛:数据仓库
问题点数:20
回复次数:4
发表时间:2002-1-5 9:37:38
在局域网上,服务器为NT4+SQL7,程序是用PB6.5写的.在其它机器运行正常,有一台机器上不能正常运行.能查到服务器中的数据,也能用insert向数据库中写数据,网卡和系统没有问题(系统重装,换网卡都没解决问题).
代码如下:
DECLARE insert_proc PROCEDURE FOR insert_trade_info
@id = :chen_trade_id,@code = :s_code,@trade_number = :s_trade_number ,@trade_number_unit = :s_trade_number_unit ,@rebate = :s_rebate,@can_serve_price = :s_can_serve_price,@trade_price = :s_trade_price,@buy_unit = :hosp_sel_name,@trade_date = :s_trade_date,@return_value=:return_value;
execute insert_proc ;
FETCH insert_proc INTO :returnvalue;
close insert_proc;
string ms
if sqlca.sqlcode <> 0 then
ms = '/'+sqlca.SQLErrText +'/'+ string(sqlca.SQLCode) + '/'+string(sqlca.SQLDBcode)
rollback;
messagebox("错误","保存数据时出错!"+ms)
return
end if
commit;
出错信息:
Procedure has not been executed or has no results /-1/0/
请大家帮帮忙.
回复贴子:
回复人: tiantianpb(甜甜) (2002-1-5 9:57:26) 得0分
sqlca.autocommit=true试试
回复人: zqllyh(找感觉) (2002-1-5 10:05:06) 得0分
TO 甜甜妹:sqlca.autocommit=true可能不行,我也出过这种错,但不是单台机器,而是所有机器都是这样。结果我用存储过程做数据窗口,再从数据窗口中取得才搞定,不知是什么原因,我很想知道。
回复人: tpProgramer(tp编程者) (2002-1-5 10:06:54) 得0分
对了,你的存储过程每次新建的时候都不判断这个存储过程是否已经存在的?如果名字重复了怎么办?
别的看不出什么问题。
回复人: ldaiming(aiming) (2002-1-5 19:55:48) 得0分
会不会和注册表有关系? 同样的情况我也碰到过,在启动WIN98时,我用SCANREG 恢复了以前的注册表启动WIN98,然后程序就出现不能调用存储过程的情况,后来把能用的机器上的C盘克隆过来才解决问题,但不知道为什么,请各位大师指点。