本文介绍PowerBuilder如何创建工作空间,并通过详细的步骤,提供增加、删除、修改、查询的示例
创建新工作空间
- 单击工具栏中的【New 】图标,弹出New对话框。
- 选择【WorkSpace】标签页中的【WorkSpace】图标,单击【Ok】按钮弹出New WorkSpace对话框。
- 在文件名文本框中输入工作空间的名称Study,保存在新建目录D:Study中,单击【保存】按钮即可。
创建新应用程序
应用程序也称应用,一个应用可以完成一组相关的功能,应用由一系列PowerBuilder对象组成,应用库是存储PowerBuilder应用的文件,应用对象是用来标识应用、进入应用的入口点。
- 单击工具栏中的【New 】图标,弹出New对话框。
- 选择【Target】标签页中的【Application 】图标,单击【Ok】按钮,弹出Specify New Application and Library对话框。
- 在Application Name文本框中输入应用的名称Study,单击Library文本框,系统将自动设置与应用同名的库文件名和目标文件名,单击【Finish】按钮,即完成应用程序的创建。
创建数据窗口对象
数据窗口对象是PowerBuilder中的对象,通过它不但可以对数据库中的表进行检索、查询、插入、删除和更新,而且还可以对数据指定显示格式、编辑风格和有效性验证。
- 单击工具栏中的【New 】图标,弹出New对话框。
- 选择【DataWindow】标签页,弹出包含11种数据显示风格的对话框。
- 选择Freeform 图标,单击【Ok】按钮,弹出Choose Data Source for Freeform DataWindow对话框。
- 选择Quick Select数据源,单击【Next 】按钮,弹出Quick Select对话框。
- 选择Tables列表框中的Address表,在Columns列表框中显示出Address表、的所有字段,单击【Add All 】按钮,就会选中所有字段。
- 单击【Ok】按钮,弹出Select Color and Border Settings对话框,在Background Color下拉列表中选择Button Face,在Columns分组框的Border下拉列表框中选择Lowered。
- 单击【Next 】按钮,弹出Ready to Create Freeform DataWindow对话框,列出了所创建的数据窗口的全部设置特性。
- 单击【Finish】按钮,弹出Datawindow的Design窗口。如下页图所示。
编写脚本
- 为应用对象的Open事件编写脚本。单击【Window|System Tree】菜单项,弹出系统树窗口。双击应用对象图标弹出脚本编辑窗口。在脚本编辑窗口中有两个下拉列表框,左边的是对象下拉列表框,右边的是事件下拉列表框,分别选择Study应用对象和Open事件,在脚本编辑区书写如下代码:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring=’DSN=Study'"
connect;
open(w_study)
- 为窗口对象的Open事件编写脚本。用鼠标右击窗口弹出一个菜单,选择Script菜单项,弹出脚本编辑窗口,在对象下拉列表框中选择窗口对W_study,在事件下拉列表框中选择Open事件,在脚本编辑区书写如下脚本:
dw_1.settransobject(sqlca)
- 为检索按钮Cb_1的clicked事件编写脚本。在步骤2弹出的脚本编辑窗口中选择对象Cb_1和事件clicked,在脚本编辑区书写如下脚本:
dw_1.retrieve()
- 同步骤3,为插入按钮Cb_2的clicked事件编写如下脚本:
long ll_currentrow
ll_currentrow=dw_1.getrow()
dw_1.insertrow(ll_currentrow)
- 同步骤3,为删除按钮Cb_3的clicked事件编写如下脚本:
long ll_currentrow,ll_rtn
ll_currentrow=dw_1.getrow()
ll_rtn=messagebox("提示", "你将 要 删 除 纪 录 , 是 否 继续", question!,yesno!,1)
if ll_rtn=1 then
dw_1.deleterow(ll_currentrow)
end if
- 同步骤3,为存盘按钮Cb_4的clicked事件编写如下脚本:
if dw_1.update()=1 then
commit using sqlca;
messagebox("提示","数据库更新成功")
else
rollback using sqlca;
messagebox("提示","数据库更新不成功")
end if
- 同步骤3,为退出按钮Cb_5的clicked事件编写如下脚本:
close(parent)
至此程序全部完成。