dw_1.update()的问题

lolango 2008-12-15 10:08:41
左右两个dw_dw, dw_gr ,左边的显示单位名称 ,点单位名称的时候 dw_gr.retrieve(ls_dwbh) 右边显示单位里面的人员名单
有两个radio button,一个是rb_dw 一个是rb_gr ,函数f_sqlcode是我写的判断sqlca.sqlcode返回值的。

if rb_dw.checked = true  then
dw_dw.update ()
f_sqlcode("单位数据更新失败!")
end if


if rb_gr.checked = true then
dw_gr.update ()
f_sqlcode("个人数据更新失败!")
end if

为啥我一点更新,就显示: 数据库错误代码:0 数据库错误信息:transaction already connected.
...全文
776 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wei0869 2008-12-16
  • 打赏
  • 举报
回复
两次连接数据库了
lolango 2008-12-16
  • 打赏
  • 举报
回复
郁闷死啦!我把数据源重新做了一遍,代码还是用以前的,一个字都没修改,居然又什么都好了!my gooooooood!
lolango 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 Divina 的回复:]
提供点小建议:

SetTransObject的地方
看看你录入数据后又没有把更新标志清了的代码
[/Quote]

一共就两部分代码,数据库连接代码 和 保存的update()部分,没有其他的了,所有的代码我都写出来了。
Divina 2008-12-16
  • 打赏
  • 举报
回复
提供点小建议:

SetTransObject的地方
看看你录入数据后又没有把更新标志清了的代码
lolango 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Chenghj 的回复:]
connect using sqlca;
这句是否前面的程序已经执行了且没有disconnect?
[/Quote]

肯定是连接的,要不然会有报错提示的。
Chenghj 2008-12-16
  • 打赏
  • 举报
回复
connect using sqlca;
这句是否前面的程序已经执行了且没有disconnect?
lolango 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Chenghj 的回复:]
程序中定义了几个transaction,保存时用的是哪个? commit 缺省是 using sqlca;
[/Quote]

w_1 open的代码如下:

connect using sqlca;
dw_1.SetTransObject(SQLCA);
dw_1.retrieve()

commit using sqlca; 也使用了,无效,真是见鬼了!
Chenghj 2008-12-16
  • 打赏
  • 举报
回复
程序中定义了几个transaction,保存时用的是哪个? commit 缺省是 using sqlca;
lolango 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shiz_003 的回复:]
你可以用一个最简单的方法来试试,就是把那个dw_1中的数据窗口打开,然后插入几个数据。然后再手动保存,再看看数据库中有没有保存。
[/Quote]

直接用pb打开库,然后保存是没问题的。
shiz_003 2008-12-16
  • 打赏
  • 举报
回复
你可以用一个最简单的方法来试试,就是把那个dw_1中的数据窗口打开,然后插入几个数据。然后再手动保存,再看看数据库中有没有保存。
lolango 2008-12-16
  • 打赏
  • 举报
回复
今天真是和update() 较上劲了,我重新做了非常简单的一个dw_1,然后更新里面的数据,提示成功保存后,重新查看,居然什么也没保存!代码如下:

if dw_1.update()=1 then
commit;
messagebox("提示","保存成功!")
else
messagebox("提示","保存失败!")
end if
Chenghj 2008-12-16
  • 打赏
  • 举报
回复
2楼正确
lolango 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 eviler 的回复:]
1.应该是你 f_sqlcode 函数有问题
2.对数据窗口使用 update(),不用再去判断sqlcode ,直接使用 dw_1.update() = 1 说明成功, <>1说明保存失败
[/Quote]

果真是这里加入f_sqlcode 有问题哦,去掉就可以了,为什么呢?
lolango 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liubocy 的回复:]
f_sqlcode代码
[/Quote]

If Sqlca.Sqlcode<> 0 Then
MessageBox("提示",ls_str +" ~r~n 数据库错误代码:" +string(sqlca.sqldbcode) + " ~r~n 数据库错误信息:" + sqlca.sqlErrText)
rollback;
return
end if
eviler 2008-12-15
  • 打赏
  • 举报
回复
1.应该是你 f_sqlcode 函数有问题
2.对数据窗口使用 update(),不用再去判断sqlcode ,直接使用 dw_1.update() = 1 说明成功, <>1说明保存失败
-狙击手- 2008-12-15
  • 打赏
  • 举报
回复
检查你的角本,错误表明你两次connect
在程序中加入debugbreak()然后调试
liubocy 2008-12-15
  • 打赏
  • 举报
回复
f_sqlcode代码

610

社区成员

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

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