一个grid的数据窗口是用that have no 链接的2个表

zzznzzzz 2010-11-19 10:15:33
a表数据多 对应的b表数据少
链接后b的数据可能是空的,我对数据窗口中b表的空数据赋值,包括b的主键~能用数据窗口的update保存b表的数据么?
...全文
86 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fm20027 2010-11-19
  • 打赏
  • 举报
回复
9#正解,datawindow中多表更新要写脚本,一个个表更新。论坛中有例子,或者到你的PB例子应用中去找。写个函数调用也行。
zlf19810306 2010-11-19
  • 打赏
  • 举报
回复
datawindow 做多表更新的时候本来就是要一个表一个表的手动update(),你datawindow是3个表连接起的,要更新这个三个表就要做三次update(),不是一次update()就可以更新三个表的
zlf19810306 2010-11-19
  • 打赏
  • 举报
回复
这和b表主键没关系。说白了就是datawindow 有个原始数据缓冲区,保存是你retrieve()时,从数据库取的数据。如果其他的地方修改了你所取的数据,那么你在update()的时候,pb会先看你修改的数据是否有原始数据。如果有那么pb会根据你Update properties的条件去对比数据库,如果一致那么就更新,如果不一致那么就提示你看到的错误。也就是说你retrieve()得到的数据中有若干条记录和你update()时数据库中的数据不一样
zzznzzzz 2010-11-19
  • 打赏
  • 举报
回复
没人看懂我说的么~看样子数据窗口不支持that have no 链接方式的从表的更新啊。。。
zlf19810306 2010-11-19
  • 打赏
  • 举报
回复
一般是多客户端并发造成的,你要Update Properties属性中根据实际情况作设置的修改。

你的datawindow要做多表更新的话,要同过modify()函数修改 datawindow 既其对象的属性来达到,先update a表,然后update b表,然后一起提交和回滚
zzznzzzz 2010-11-19
  • 打赏
  • 举报
回复
数据retrieve后b表由于数据少是靠that have no 链接 显示出来的都是空行,我对数据窗口中b表的空数据赋值,这里肯定包括b的主键了~
zzznzzzz 2010-11-19
  • 打赏
  • 举报
回复
属性设置了 :Key and Updatable Columns 和 Use Update
zlf19810306 2010-11-19
  • 打赏
  • 举报
回复
row changed between retrieve and update.
好明显,你操作的数据行在上一次retrieve之后,被别的人(或程序)做了update,如果系统要让你成功提交,就会出现‘脏’的数据。

数据窗口的Update Properties属性中(Rows ->Update Properties...)
Where Clause for Update/Delete
有三个Redio Botton:
代表当做Update/Delete时要比较哪些数据项,验证你操作的数据行在上一次retrieve之后,有没有被别的人(或程序)做了修改,若被修改过,则报错。
row changed between retrieve and update.

要避免上述问题,就是对数据窗口做UPDate之后,成功了应做Commit,失败事也要做RollBack.
hyf_0023 2010-11-19
  • 打赏
  • 举报
回复
数据窗口的更新与你a,b表谁数据多少没有关系,
分析可能是你的数据窗口对象菜单“Rows-UpdateProperties...”属性没有设置。
zzznzzzz 2010-11-19
  • 打赏
  • 举报
回复
错误提示是Rowchangedbetweenretrieveandupdate
PB菜鸟 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fm20027 的回复:]
9#正解,datawindow中多表更新要写脚本,一个个表更新。论坛中有例子,或者到你的PB例子应用中去找。写个函数调用也行。
[/Quote]
这个说的对
xuam 2010-11-19
  • 打赏
  • 举报
回复
说白了他就是左连接 ,我觉得不是链接的问题!
而是更新方法的问题!
[Quote=引用 11 楼 xiaobn_cn 的回复:]
8楼加9楼就是问题的答案了,另外不知道楼主用的啥数据库?that have no这个关键词从来没见过的说。
[/Quote]
xiaobn_cn 2010-11-19
  • 打赏
  • 举报
回复
8楼加9楼就是问题的答案了,另外不知道楼主用的啥数据库?that have no这个关键词从来没见过的说。

609

社区成员

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

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