再论PowerBuilder数据窗口的Update属性设置

        以前曾经写过一篇文章关于PowerBuilder中设置数据窗口Update属性的,主要讲的是防止出现“行在保存之前已经被更新”之类提示,属于并发问题。最近使用数据窗口过程中发现,Update属性设置不当还会出现数据的丢失,详情如下:

        现数据库中有一张表保存商品信息,商品主键为编号,其余有种类、名称、零售价、批发价等字段。在其中一个编辑窗口中,添加了一个数据窗口,牵涉到权限问题,没有将价格列入到数据窗口的SQL中。由于窗口中的商品编码比较混乱,所以用一段代码对商品重新进行了顺序编号,然后数据窗口保存。保存完后当时没发现什么,后来在其它地方处理数据时突然发现商品的价格信息都成Null了!排除了其它原因之后,想到还是因为这次编号替换操作带来的后果,为什么会丢失数据?还是数据窗口的Update属性设置不当,如下图:

         在这里,我所设置的“Key Modification ”属性是“Use Delete then insert”。那就是说,如果表数据的主键发现变动,数据窗口会将原数据删除再根据当前数据窗口中的数据重新插入,因当前数据窗口没有包括价格等字段,当然这些信息也就随之丢失了。一般我们在用PB写程序时不会允许用户随便修改已经存在的数据主键,但是如果真有这种需求,一定要注意,尤其是数据窗口中的信息不是表中完整字段信息时。

        一点心得,希望能对那些和我一样在PB编程方面经验缺乏的朋友们一点帮助。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值