datawindow的update问题,100分在线等候

czlvc 2002-10-19 07:25:42
为了能够使数据删除后能够恢复,我创建了两个datawindow-dw_1 dw_2控件,当用户点击删除时,把数据从dw_1的主缓冲区移入dw_2的主缓冲区,可是当我保存时,我用dw_1.update()时系统就会报错,说dw_1没有update()的能力。
急需大侠指教。
...全文
40 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
louisa5155 2002-10-21
  • 打赏
  • 举报
回复
建议你先进行假性删除,即不COMMIT数据,只进行置删除标志位,在恢复时只需重新检索一下就可以了
joss 2002-10-21
  • 打赏
  • 举报
回复
根据需要达到效果的不同有许多实现的办法,楼上都说得比较多了,
如果UPDATE操作出错,一定是数据窗口属性设置出错了,参照上面的方法应该能解决问题

关于删除我认为用一个删除项来实现假删除比较好!
应该删除操作容易给数据库带来并发错误,特别是表与表间关系紧密的数据库
只要假删除比较容易实现你效果,我想还是增加一个删除项比较好!
Steel Ren 2002-10-20
  • 打赏
  • 举报
回复
先看看你的数据窗口的UPDATE PROPERITES是不是设置为ALLOW UPDATE
xwmhn 2002-10-20
  • 打赏
  • 举报
回复
到DW设计窗口-“ROWS”菜单-“UPDATE PROPERITES”菜单;
进去后选中所有列即可,也就是选中“ALLOWUPDATE”
pufan 2002-10-20
  • 打赏
  • 举报
回复
若要在数据update之前进行undo的操作可将数据用rowsmove移至delete缓冲区,uodo时移回即可,并且不用修改itemstatus.
young52010 2002-10-20
  • 打赏
  • 举报
回复
为了能够使数据删除后能够恢复,要达到这个目的,不用那么麻烦。在表中增加一个删除标记的字段,删除时改为1,取消时改为0,一个DW搞定。
george77 2002-10-20
  • 打赏
  • 举报
回复
dw_2.reset()
huihuishou 2002-10-20
  • 打赏
  • 举报
回复
你提的问题是两个问题:
第一:是用rowsmove()函数移动行。
第二:是用update()函数更新dw_1

这两个问题是没有联系的。
①用rowsmove()函数移动行的原理是:
如果源数据窗口和目标数据窗口不是同一数据窗口的话(但两数据窗口要保持列匹配)
举例:源数据窗口dw_1
目标数据窗口dw_2
那么首先dw_1把要移动的行拷贝到目标数据窗口dw_2中,然后再把dw_1中把这些行废除(既删除,也就是移入删除缓冲区中)

②正象你说的,dw_1把行移到dw_2后就不能update了,那么如果你没有做移动操作,照样不能update呢?因为能不能UPDATE跟你是否rowsmove是没有关系的。

所以你的问题应该是不能update的问题。
这种问题最好还是先检查数据窗口的UPDATE属性是否设置正确?表中是否有非空列没有赋值?还有有没有设主外键关系?




balloonman2002 2002-10-19
  • 打赏
  • 举报
回复
原因:未设置UPDATE属性;
解决:到DW设计窗口-“ROWS”菜单-“UPDATE PROPERITES”菜单;
进去后选中所有列即可;
pufan 2002-10-19
  • 打赏
  • 举报
回复
dw_1移入dw_2时,用rowscopy,然后deleterow要删除的行试试.
ice2water 2002-10-19
  • 打赏
  • 举报
回复
我看到过关于dw四个缓冲区的说明,是否还须将dw_1中删除的数据移到删除缓冲区,是否可这样:将删除的数据拷贝到dw_2,然后在dw_1中直接删除。

609

社区成员

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

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