在查询分析器内执行,但是在程序运行中报错;

ahcorelax 2016-05-04 03:22:46
这大概是我碰到过测最蹊跷的事情之一:一段程序,在本机正常运行,在客户那里运行报错,报错内容如下:

尝试将不可为NULL的列的值设置为NULL;

在客户电脑做数据跟踪,得到跟踪语句:
execute Tc_repairstock @cwhcode ='006' , @querydate ='2016-5-4 0:0:0.000' , @maxid =2 , @isconuncheck =0

拷贝到查询分析器里可以正常执行;

仔细看过数据库连接对象,也没有错啊,不明白为什么报这样的错误,一点解决的头绪都没有,附程序如下:

--前面是声明变量和赋值;

DECLARE Pb_repairstock PROCEDURE FOR Tc_repairstock
@cwhcode = :ls_cwhcode,
@querydate = :dd_querdate,
@maxid = :ll_maxid ,
@isconuncheck = :ll_isconuncheck
;
EXECUTE Pb_repairstock;

IF sqlca.SQLCode >= 0 THEN
COMMIT Using sqlca;
//messagebox('提示','当前客户应收已自动核销,请重新查询参照')
ELSE
ls_err = sqlca.SQLErrText
ROLLBACK Using sqlca;
MessageBox('提示','查询失败,请参考错误提示'+ls_err)
RETURN
END IF
...全文
340 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahcorelax 2016-05-06
  • 打赏
  • 举报
回复
最后听从了一位朋友的建议,将这个存储过程分拆成两段,分开执行,可以了,谢谢大家!
qq_29133497 2016-05-05
  • 打赏
  • 举报
回复
1.打开你的存储过程; 2,.看你存储过程里边的insert和update表的字段哪几个字段是非空属性; 3.用客户那边的数据库看看是不是把空值放到非空属性的字段里了。
ahcorelax 2016-05-05
  • 打赏
  • 举报
回复
看来这个问题接触过的人很少啊。我也是第一次遇到,用数据跟踪的结果拷到查询分析器可以执行,但是在程序里不能执行。

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧