PowerBuilder DATAWINDOW的四个缓冲

本文详细解析了PowerBuilder DATAWINDOW中的四种关键缓冲区:主缓冲区、删除缓冲区、过滤缓冲区和原始缓冲区,阐述了它们在数据操作中的作用及SQL语句生成过程。

PowerBuilder DATAWINDOW的四个缓冲


在PowerBuilder中,dw是用户前端用来存储、操纵数据的对象。
在每一个dw对象中有4个数据缓冲区,用来存储查询到和新增的数据。用户在dw中对数据的操作实际上都是将数据在这几个缓冲区中进行的,最后在用户提交数据库时,系统根据这四个缓冲区中的信息形成SQL的DML(insert delete update)语句等语句。


1、Primary Buffer 主缓冲区

这个缓冲区是存放填充dw控件中数据的,
调用DataWindow的Retrieve()函数和InsertRow()函数可以将数据填入这个缓冲区中。当使用DataWindow删除DeleteRow()和过滤函数用Filter()时,相应记录将从这一缓冲区中删除。而在执行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 原始缓冲区

这一缓冲区存储的是dw最初执行retrieve()函数时得到的全部记录。当提交数据库时,根据Primary Buffer(主缓冲区)生成的UPDATE语句和根据Delete Buffer(删除缓冲区)生成的DELETE语句都要依据这一缓冲区来构造这些SQL语句中的Where子句。 原始缓冲区由PowerBuilder内部维护,Power-Builder所提供的任何函数都无法改变它的值,不过通过PowerBuilder所提供的GetItem…系列的函数可以读出DataWindow最初从数据库中查到的原始值。通过这些函数我们可以编程实现所谓的"Undo"功能,并且得到在使用乐观锁时形成提交数据库的WHERE子句。 如果您当前使用的dw没有设置修改的权力,您将不能对Delete缓冲区和Original缓冲进行操作,而且当调用Update()时也将引起系统错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^ω^小葫卢^ω^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值