PB6.5中数据窗口update的奇怪问题

swallowluo 2010-05-14 10:58:28
今天碰到了一个奇怪的问题:
环境:PB6.5 + Sybase11.9.2.5
Sybase数据库中有一张表中有主键,在PB程序中使用数据窗口往这个表中新增记录,新增的方式是现在PB的数据窗口中insert记录,然后使用数据窗口的update方法提交。

现在的问题是:数据窗口中要新增的一条记录在表中已经存在了(主键重复),这样update的返回值是-1,这是没有问题的,但是sqlca.sqlcode的值为0,sqlca.sqlerrtext中也为空,这样就无法知道错误信息是什么。

请大家指点一二。
...全文
227 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolcen 2010-05-28
  • 打赏
  • 举报
回复
继承datastore对象,然后就可以自由写了
swallowluo 2010-05-27
  • 打赏
  • 举报
回复
datastore虽说和datawindow是一样的,但是它如何在dberror事件中写代码呢?
swallowluo 2010-05-26
  • 打赏
  • 举报
回复
不好意思,最近比较忙,一直没有上论坛看留言。
谢谢楼上各位的回复。
不过我用的是Datastore,不知道怎样才能获得错误信息?
new4everlau 2010-05-26
  • 打赏
  • 举报
回复
DATASTORE操作和DATAWINDOW是一样的
wag_enu 2010-05-15
  • 打赏
  • 举报
回复
自定义窗口的实例变量:
long il_sqlcode
string is_dberror

在该DW 的dberror 事件里写:
il_sqlcode = sqldbcode
is_dberror = sqlerrtext

return 1

再在dw.update 的地方写:
sqlca.autocommit = false
if dw.update() <> 1 then
rollback using sqlca;
messagebox('错误',is_dberror)
else
commit using sqlca;
end if

new4everlau 2010-05-15
  • 打赏
  • 举报
回复
这个问题以前还真没注意,应该不会是0啊
是不是你使用的事物不是sqlca啊?
dahaidao 2010-05-15
  • 打赏
  • 举报
回复
你可以在dw的dberror事件中处理这个错误.return 1时不再显示系统自带的提示.
dahaidao 2010-05-15
  • 打赏
  • 举报
回复
sqlcode已经被dw处理了,所以你再查它的值也没有用了,好像是这样的.

740

社区成员

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

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