独自幸福快乐医疗保健全国药品集采加速利好医疗服务及原依依不舍孤独

制冷设备2020年06月17日

DATAWINDOW的四个缓冲区

在PowerBuilder中,DataWindow是用户前端用来存储、操纵数据的对象。在每一个DataWindow对象中有4个二维表作为数据缓冲区,用来存储查询到的数据。用户在DataWindow中对数据处理系统内部的操作实际上都是将数据在这几个缓冲区中进行的修改和移动,最后在用户提交数据库时,系统根据这四个缓冲区中的信息形成SQL的IN-SERT,UPDATE,DELETE等语句。这四个缓冲区是:

1、Primary Buffer

这个缓冲区是存放填充窗口中DataWindow控件中数据的,调用DataWindow的Retrieve()函数和InsertRow()函数可以将数据填入这个缓冲区中。当使用有关DataWindow删除和过滤函数时,相应记录将从这一缓冲区中删除。而在执行DataWindow的Update()函数时,PowerBuilder将查看这一缓冲区中的记录,以形成SQL INSERT和UPDATE语句。

2、Delete Buffer

这个缓冲区保存的是用DeleteRow()函数从Primary Buffer中删除的记录,执行Update()函数时,系统根据这一缓冲区的记录形成DELETE语句。

3、Filter Buffer

这个缓冲区存储的是从Original Buffer使用Filter()函数过滤到Primary Buffer中后剩余的记录。

4、Original Buffer

这一缓冲区存储的是DataWindow最初执行retrieve()函数时得到的全部记录。当提交数据库时,根据Primary Buffer生成的UPDATE语句和根据Delete Buffer生成的DELETE语句都要依据这一缓冲区来构造这些SQL语句中的Where子句。

Original Buffer由PowerBuilder内部维护,Power-Builder所提供的任何函数都无法改变它的值,不过通过PowerBuilder所提供的GetItem…系列的函数可以读出DataWindow最初从数据库中查到的原始值。通过这些函数我们可以编程实现所谓的"Undo"功能,并且得到在使用乐观锁时形成提交数据库的WHERE子句。

如果您当前使用的DataWindow没有设置修改的权力我并不喜欢追求追随算法的研究,您将不能对Delete缓冲区和Original缓冲进行操作,而且当调用Update()时也将引起系统错误。

数据缓冲区的状态值

Primary Buffer和Delete Buffer都有行级和列级的状态值,这个状态值是一个枚举类型。在提交时由该行的状态值来决定是否要产生SQL语句,其中Primary Buffer产生的是IN-SERT和UPDATE语句,而Delete Buffer产生的是DELETE语句要等到晚上才能做上手术。“晚上能不能排到我们还不一定。我们用GetItemStatus()函数和SetItemStatus()函数可以对这一状态值作操纵。这一枚举状态有以下四种:

·NotModified!———该行或行的值为查询所得,没有发生改变。

·DataModified!———该行或列的值为查询所得,发生了改变。

·New!———该行或列为一插入的新行,数据没有发生改变(数据为空或缺省值)。

·NewModified!———该行或列为一插入的新行,数据发生改变。改变是通过用户键盘输入或调用了SetItem()函数。查看本文来源

勃起功能障碍该怎么办
福建治疗白癜风医院
宁德治疗白斑的医院
相关阅读
核酸药物行业发展不无关系,国内企业有望后来居上

核糖口服从业者持续发展发展酝酿,国际上上行业未来将时会之中比 华夏华...

2024-12-27
导致孩子抑郁症的三大凶手父母就有知道就有预防晚了后悔也没用

在此之前吃穿住必需都没现在好,但是得癫痫症的父母亲值得注意少,现在必...

2024-12-18
“做高仿”的莆田鞋子,开始打假了?

有新技术也有能够的福清袜子,极为重要的是来作自己。 正解本局不止品 “...

2024-12-10
52岁金龟子回青岛老家!踩千元拖鞋独自逛街,低调再次出现引众人围拍

你的少年时代记忆底下都有谁,想念他们有什么变化吗? 近日,有网上晒出...

2024-11-27
天雷滚滚的穿帮:皇帝冠冕夹烟,赵丽颖挨打垫垫板

那时候小编时会大家产生几张古装剧里的身穿帮图片,大家平时看剧的时候有...

2024-11-25
苏州大学和河海大学,谁的统治力更更胜一筹?

相信大家在前不久的报考里,也是绞尽脑汁,反复相对所选全国高校里哪所全...

2024-11-15
友情链接
3