最近这几天一直在用pb做一个小系统,经过这几天对pb9的使用,发现pb9的核心是数据窗口对象的使用,通过使用数据窗口对象可以将数据库的记录显示到界面上,并且可以直接在前台对数据库的记录进行增删改查,不用再后台写增删改查的sql语句,用起来很是方便,下面就来看下我们的具体实现过程。
我们首先先看下具体的实现效果,在界面上我们点击添加,可以自动添加一行,我们只要手动输入即可,同样删除的话,选择某行直接删除即可。
实现的过程是首先添加数据窗口对象,然后与数据库中的表进行关联,同时对数据窗口进行设置,设置完成后将数据窗口对象与界面上的DataWindow控件进行绑定,我们通过图片来看下具体的过程。
1.选择要添加的数据窗口对象的风格
2.选择何种方式连接数据源
3.选择数据库中的表与数据窗口对象进行绑定
4.对数据窗口进行设置,设置表头和可编辑属性,图片中的2如果不设置,则数据窗口不可编辑,不能输入文本,我在这里花费了很长的时间。
5.下面两张图片设置数据窗口可更新属性,不设置的话,只可以进行查询,不可进行删除和增加。在此还有一点要说的是,数据库中要绑定的表必须有主键。
6.最后一步是将数据窗口进行保存。
7.添加window窗体,在窗体上添加与数据窗口对象关联的控件DataWindow。
数据窗口对象添加完毕以后,下面我们就来看下具体代码的实现
1.在窗口的open事件下代码:
//将数据窗口与控件进行绑定 dw_1.dataobject="d_user" dw_1.settransobject( sqlca ) dw_1.retrieve()
2用户管理窗口w_yhgl的Closequery事件代码如下。
//窗体关闭时进行提醒 integer rt dw_1.accepttext() if dw_1.modifiedcount() =0 anddw_1.deletedcount()=0 then return0 else rt=messagebox("提示","添加修改内容未保存,确实退出吗?",Question!,YesNo!) ifrt=1 then return0 endif end if return 1
3数据窗口控件的Itemechanged事件代码如下。
cb_save.enabled=true //激活“保存”按钮
4[添加]按钮控件cb_add的Clicked事件代码如下。
//添加功能的实现 integer row row=dw_1.insertrow(0) dw_1.scrolltorow(row)
5[删除]按钮控件cb_delete的Clicked事件代码如下。
//进行记录的删除 dw_1.deleterow(0) cb_3.enabled=true
6[保存]按钮控件cb_save的Clicked事件代码如下。
//对添加和删除进行操作 if dw_1.update(true,false)=1 then dw_1.resetupdate() commit; cb_3.enabled=false else rollback; messagebox("提示","保存数据失败!") end if
7[退出]按钮控件cb_exit的Clicked事件代码如下。
close(parent)
到这里我们利用数据窗口对象实现记录的增删查就实现了。
总的来说,我认为数据窗口和DataWindow其实就是一个封装好的控件,可以与数据库中的表进行绑定,我们对于记录进行增删改查时不再需要后台写SQL语句,只需要利用他们提供给我们的方法就可以实现增删改查的功能,并且关于数据窗口对象的样式也是有很多种风格的,使用起来还是很方便的。