powerbuilder(pb)数据窗口(datawindow)缓冲区与状态解释.docVIP

powerbuilder(pb)数据窗口(datawindow)缓冲区与状态解释.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PowerBuilder数据窗口缓冲区与状态 详解 Powerbuilder(pb)的datawindow(数据窗口)的各个缓冲区和状态是pb数据窗口的非常重要的,对这些概念的理解,将有助于我们认识pb数据窗口的优势。 基本概念 数据窗口的三个缓冲区: Primary! Delete! Filter! Getitemstatus(row,列名或者列号,缓冲区) 当要取整个行的状态时,列名或者列号用0表示 数据窗口中数据项状态 Notmodified! 从数据retrieve出来后没有改变过 Datamodified! 数据retrieve出来后有过改变 New! 数据窗口增加了一列但没有录入过数据,该列的状态就是new! Newmodified! 数据窗口增加了一列,同时改列被录入了数据,该列的状态就是newmodified! 1、一个数据窗口dw_1,刚被retrieve出来后,结果如下: 编号 姓名 001 Ccc 002 ddd 所有的行和数据项状态都是notmodified 用geitemstatus(行号,列名,primary!)取每一数据项状态 用getitemstatus(行号,0,primary!)去行状态 2、当我把Ccc改为AAA后,如下: 编号 姓名 001 AAA 002 ddd 001,002,ddd三个格子所在的数据项状态仍旧是notmodified AAA(原是Ccc)所在格子的数据项状态是datamodified 第一行(001,AAA)的行状态是datamodified 第二行(001,ddd)的行状态时notmodified 3、不保存,我把dw_1.insertrow(0)后,如下: 编号 姓名 001 AAA 002 Ddd 第一行,第二行的状态参考前面第2点。 第三行状态就是new! 请用getitemstatus(3,0,primary!)取第三行状态 4、不保存,当把第三行数据填充后,如下 编号 姓名 001 AAA 002 Ddd 003 FFF 第三行的状态将变为newmodified! 第三行的每一项将变为datamodified! 开发中实例: 表1 编号 姓名 金额 001 A 100 002 B 202 003 C 109 004 D 405 005 E 2000 表2 编号 姓名 消费或者充值记录 001 A 5 002 B 6 003 C 4 004 D 10 005 E 15 001 A 4 003 C 6 002 B 19 (因为是举例,请不要考虑数据库设置中的冗余概念,如表2中的姓名没必要等) 需求一、 删除表1中的数据的同时,把表2的数据也删除,必须删除,不考虑约束条件。如把表1中001,002删除了,需要把表2中所有001,002的记录删除,(【删除】和【保存】是两个按钮或菜单,就是说【删除】只是删除了前台的内容,不【保存】数据库中数据是没有被删除的,数据库需要【保存】执行的时候才真正执行删除),怎么做? 可以使用触发器; 可以在删除之前把表1记录下来,【保存】时对比表1,看那些数据缺少了; 3、…….. DeletedCount ( ) Getitemstring(row,列名,delete!,true) (为什么用true,不用false呢?,true是从数据库取出来的默认值,false是当前值,如果删之前用户修改过编号,但是没有保存,用false就会有问题) 需求二、 把表1中编号001改为了A01,002改为001,003改为B05,004,005不变 (没有任何规律的),要求表二的编号也这么改过来。 可以使用触发器; ……. 循环取每一行的编号的状态(getitemstatus),看是否是datamodified!,如果是 Getitemstring(row,列名,primary!,true) 取到原始值 Getitemstring(row,列名,primary!,false) 取到修改后的值,等同于getitemstring(row,列名) 根据原始值和修改后的值对表2进行sql操作。 需求三、 表1中增加了一行记录(006,F,2000),表二同时也要增加这么一条记录 (006,F,2000) ……. 循环取每一行编号的状态(getitemstatus),注意此处列名应该是0了。看是否是newmodified!,如果是,需要把这条记录增加到表2中。

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档