pb实验指导.docx
- 文档编号:12713841
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:28
- 大小:290.82KB
pb实验指导.docx
《pb实验指导.docx》由会员分享,可在线阅读,更多相关《pb实验指导.docx(28页珍藏版)》请在冰点文库上搜索。
pb实验指导
实验一数据库的创建与连接
目的和要求
(1)掌握PowerBuidler9.0数据库的创建与连接方法;
(2)创建一个SQLServer数据库,为其配置ODBC数据源和DBProfile,然后在PowerBuilder环境中连接数据库;
(3)创建数据库中的表,管理表并输入数据到表中。
上机准备
(l)启动Windows操作系统,如果在Windows操作系统的控制面板中没有安装ODBC32,必须进行ODBC的安装;
(2)进人PowerBuilder9.0集成环境,熟悉系统环境;
(3)创建的应用个人应用mypb;
(4)复习创建数据库的有关内容。
上机步骤
1..创建SQLServer数据库
创建SQLServer数据库的步骤:
(1)运行SQLServer服务;
(2)运行SQLServer企业管理器;
(3)创建student数据库;
(4)在student数据库中,创建student表(见表1)。
2.配置ODBC数据源
配置ODBC数据源的步骤:
(1)在PowerBuilder数据库画板的窗口中,双击ODBC项下Utlities项的“ODBCAdministrator”项,将弹出“ODBC数据源管理器”对话框:
(2)选择“用户DSN”页,在该页的列表框中,列出了已有的数据源,若要修改已有的数据源,可以中击“配置”按钮进行修改。
这里,我们需要添加一个ODBC数据源,所以,中击“添加”按钮创建新数据源,将出现标题为“创建新数据源”的对话框;
(3)在“创建新数据源”的对话框中提供了一个系统支持的数据库驱动程序列表框,选择合适的驱动程序。
这儿我们选择SQLServer,单击“完成”按钮,将弹出“创建SQLServer新数据源”对话框;
(4)输入新的数据源名称,这里为mydb。
然后,选择想连接的SQLServer服务器,可选择local,然后单击“下一步”按钮;
(5)选择SQLServer验证,登录ID为sa,密码默认为空,然后单击“下一步”按钮;
(5)更改默认的数据库为student,然后单击“下一步”按钮;
(5)默认系统值,然后单击“完成”按钮;
(5)单击“确定”按钮;这时可以看到“mydb”已经加入到数据原列表中,单击“确定”按钮,完成ODBC数据源的配置。
3.配置DBProfile
配置DBProfile的步骤:
(1)在PowerBuilder数据库画板窗口中,选择“ODBC”项,单击鼠标右键,选择“NewProfile...”项,将弹出“DatabaseProfileSetup-ODBC”对话框;
(2)选择“Connection”页,在“ProfileName”栏中,输入DBProfile名,这里mydb;在“DataSource”,下拉列表框中,按“▼”按钮,弹出已经配置的ODBC数据源,这里选择mydb;选中UserlD和Password,在它们右边的输人栏中分别输入“sa”和空;
(3)单击“OK”按钮,完成DBProfile的配置。
这时,在“ODBC”目录下,可以看到为student数据库新配置的DBProfile“mydb”。
选中“mydb”后单击右键,在弹出式菜单选择“Properties”,会重新弹出“DatabaseProfileSetup-ODBC”对话框,可以修改DBProfile的配置。
4.在PowerBuilder环境中连接数据库
在PowerBuilder环境中连接数据库的步骤:
(1)在Database画板的窗口中,选择“ODBC”项;
(2)在“ODBC”项下列出的所有可以连接数据库的DBProfile中选择要连接的DBProfile,这里为“mydb”;
(3)单击鼠标右键,在弹出式菜单中选择“Connect”连接数据库。
如果需要断开与数据库的连接,可以在弹出式菜单中选择“Disconnect”菜单项。
对于连接成功的数据库,会在相应的DBPoile前面的图标上打上“√”标记。
*5.在数据库中创建表
在数据库中创建表的步骤:
(1)在Database画板的窗口中,首先连接数据库“mydb”;
(2)展开“mydb”数据库目录,选中“Tables”,单击右键,在弹出式菜单中单击“NewTable...”,就会出现表设计子窗口;
(3)在表设计子窗口中,分别输入每个字段的名称ColumnName,选择数据类型DataType,数据宽度(字节),小数位宽度,是否允许为空Null,以及缺省值。
输入完一个字段后,按Tab或“”键,会产生另一个字段;
(4)输入完表中的所有字段后,单击工具栏上“Save”图标按钮,弹出“CreateNewTable”对话框,在TableName栏中输人表名,单击“OK”按钮保存新表。
用上述方法,在“student”数据库中,输人表2~表3。
表1Student表
字段名
意义
数据类型
宽度
Null
PrimaryKey
stud_id
学号
numric
9
No
√
Name
姓名
char
10
No
birthday
出生日期
date
Yes
Sex
性别
char
2
Yes
Nation
民族
char
10
Yes
Home
家庭地址
char
40
Yes
Tel
家庭电话
char
16
Yes
Party
政治面貌
char
16
Yes
Resume
个人简历
varchar
200
Yes
表2Subject表
字段名
意义
数据类型
宽度
Null
PrimaryKey
Subject
课程名称
char
20
No
√
startdate
开始日期
date
No
Teacher
任课老师
char
20
No
Subtime
课时数
integer
Yes
表3Grade表
字段名
意义
数据类型
宽度
Null
PrimaryKey
Stu_id
学号
numric
6
No
√
Subject
课程名称
char
20
No
√
Grade
成绩
int
Yes
6.为数据库指定关键字
为数据库表指定关键字的方法:
l)在Database画板的窗口中,展开要操作的数据库目录(已经连接好);然后展开Tables目录,选择表,再展外带要设置关键字的表的目录,选择设置关键字的类型PrimaryKey或ForeignKey,单击右键,弹出菜的中的“NewPrimaryKey”或“NewForeignKeys”,弹出相应的关键字子窗口;2)在关键字子窗口中,列出了表的所有字段,在要设置为关键字的字段前的方框中单击,出现“√”表示被选中。
保存设置结果。
7.在数据库表中输入数据
在数据库表中输入数据的方法:
(1)在Database画板的窗口中,展开数据库目录(数据库已经被连接上),展开Tables目录,选择要添加数据的表,单击右键,光标移到“EitData”处时弹出下一级子菜单,有3个菜单项“Grid...”、“Tabular...”和“Freeform...”,分别对应3种表格方式,单击任意一个菜单项,该表出现在“Output”子窗口中;
(2)在“Output”子窗口中单击,这时数据表操作工具栏由“灰”变“亮”,单击“InsertRow”图标按钮,在“Results”子窗口中的表增加一个空记录,可以输人数据了。
输入完一条记录,按Tab键,自动产生下一条记录。
输入完数据,按“SaveChanges”图标按钮,保存输人数据。
思考与练习
1.PowerBuilder可以使用什么样的数据库?
2.在PowerBuilder中,创建数据库的基本操作过程是怎样的?
3.在powerBuiluer中,数据源是什么?
如何创建数据源?
4.DBProfile的作用是什么?
如何为数据库配置DBProfile?
实验二常用控件的编程
目的和要求
(1)掌握窗口下拉列表框、选择钮、组合框、多行编辑框等常用控件的基本使用方法和编程方法;
(2)掌握窗口控件的齐整性操纵方法以及Tab顺序的设置;
(3)掌握SQL语句的使用,PowerBuilder系统提供的SQL画板的使用方法。
上机准备
(1)复习有关下拉列表框控件、选择按钮控件、多行编辑框控件以及组合框控件的内容;
(2)启动Powerbuilder9.0;
(3)选择已经创建的应用mypb..pbl。
上机步骤
本次实验将创建一个学生基础数据的录入窗口,其外观见图1;其功能是向实验1中创建的student数据库中的student表输入数据。
图1学生情况录入界面
1.创建窗口对象
创建一个新的弹出式窗口对象,Title为“学生基本情况输入”;WindowType为“popup!
”;保存窗口名称为w_studentinput。
2.向窗口中添加控件
(1)布置窗口中的静态文本控件
在窗口控件下拉列表工具栏图标中选择静态文本控件,然后在窗口上单击,生成静态文本控件。
将Text属性设置为“学生情况录人”,选择字体为“华文行楷”(无此字体时,可以换成别的字体),字体尺寸为26,按下“Bold”图标按钮,选择“TextColor”为深蓝色。
其他输入栏的说明文字都选为宋体12号黑色宇;使用Ctrl和T组合键进行外观复制后修改Text属性完成。
输入Text属性的内容可以参见图1。
(2)布置窗口中的单行编辑框控件
在窗口控件下拉列表工具栏图标中选择单行编辑框控件,然后在窗口上单击,生成单行编辑框控件。
使用Ctrl和T组合键进行外观复制生成5个单行编辑框,它们的名称和用途见表4。
表4单行编辑框的名称和用途
控件名称
说明字段
用途
sle_id
学号
输入学生学号
sle_name
姓名
输入学生姓名
sle_birthday
出生日期
输入学生出生日期
sle_home
家庭地址
输入学生家庭地址
sle_tel
联系电话
输入学生家庭联系电话
(3)布置窗口中的多行编辑框控件
在窗口控件下拉列表工具栏图标中选择多行编辑框控件,然后在窗口上单击,生成多行编辑框控件。
其名称Name为“mle_resume”,选中“IgnoreDefaultButton”复选框。
多行编辑框控件用于输入个人简历。
(4)布置窗口中的单选钮和组合框控件
窗口中共有两组单选钮,一组为性别选择,另一组为党团员选择。
性别选择单选钮的设计方法为:
在窗口控件下拉列表工具栏图标中选择组合框控件,然后在窗口上单击,生成组合框控件、再选择单选钮控件,在组合框中单击,生成单选钮控件。
设置其名称为rb_man,Text为“男”,选中Checked属性;同样再在组合框中放置一个单选钮控件,设置其名称为rb_woman,Text为“女”,不选中Checked属性。
类似地,再设置一组单选钮,用于党团员选择,其属性设置见表5。
表5党团员选择单选钮
控件名称
Text属性
Checked属性
rb_CY
团员
选中
rb_CP
党员
不选中
rb_none
非
不选中
注意,在PowerBuilder中,单选钮的组合是根据输入的顺序和Checked属性的选择自动识别的;所以,一定要有秩序地输入,如果出现组合上的混乱,可以将单选钮全部删除后重新输入。
(5)布置窗口中的下拉列表框控件
在窗口控件下拉列表工具栏图标中选择下拉列表框控件,然后在窗口上单击,生成下拉列表框控件。
输入下拉列表框控件名称为ddlb_nation,不选中Sorted属性,选中Vscrollbar属性。
单击下拉列表框控件后拖动下边框,调整下拉列表框展开后的长度。
(6)布置窗口中的命令按钮控件
在窗口控件下拉列表工具栏图标中选择命令按钮控件,然后在窗口上单击,生成命令按钮控件。
窗口中共有两个命令按钮控件,设置一个按钮的Text属性为“确定”,名称为cb_ok.选中default属性;设置一个按钮的Text属件为“退出”,名称为cb_exit,选中Cancel属性。
3.窗口控件的齐整性操作和设置输入时的Tab顺序
用手工来对齐控件和调整控件大小是费时且枯燥的工作。
PowerBuilder已经为我们提供了自动化的齐整性操作工具,例如,要使一排控件对齐,首先选中一排中的第1个控件,然后按下Ctrl键,再去单击选中这一排中的其他控件,可以看到,当选择达到两个或两个以上控件时,工具栏上齐整性操作下拉列表图标按钮由灰(不可用)变为亮(可用)。
单击齐整性工具栏中的上边对齐图标按钮,被选中的这一排控件就按上边对齐了。
试着使用其他齐整性工具按钮。
设置输入数据时的Tab键顺序的方法:
(1)单击菜单项Format│TabOrder,这时,所有控件右上角出现红色数字框;
(2)按照输人习惯;从10开始,以10递增的顺序设置输人控件的Tab键顺序,0为无Tab键顺序;
(3)调整完后,再单击菜单项Format│TabOrder,结束Tab键顺序的设置。
4.编写脚本
(1)下拉列表框控件的Constructor事件的脚本
单击选中下拉列表框控件,选择右键弹出菜单中的Script菜单项,进人SCript子窗口,选择事件下拉列表框中的Constructor事件,输人以下脚本:
this.additem("汉族")
this.additem("回族")
this.additem("维吾尔族)
this.additem("藏族")
this.additem("苗族")
this.additem("黎族")
(2)“退出”按钮的脚本
单击选中“退出”命令按钮控件,选择右键弹出菜单中的SCript菜单项,进入SCript子窗口,选择事件下拉列表框中的Clicked事件,输入以下脚本:
Close(Parent)
(3)“确定”按钮的脚本
“确定”按钮的代码比较长,首先是对输入数据的有效性检查。
这是所有用户界面设计时都必须考虑到的,它包括检查必要的数据是否输入了,输入的类型、范围和格式是否正确;其次是对输入数据的预处理,例如去前后的空格,数值的转换等:
第三是逻辑检查,尽管输入数据是有效的,但还必须保证数据在逻辑上的有效性,此例中,学号是惟一的,不允许有重复,所以进行了学号的重复性检查;第四是将数据写入数据库,这里直接采用了SQL语句;最后是将输入控件全部置空,为下一条记录的输入作准备。
PowerBuilder提供了常用的变量类型、函数、全局变量、循环语句以及SQL语句的粘贴工具,将光标置于Script区中,试着使用工具栏上“PasteFunction”、“PasteSQL”、“PasteStatement”和“PasteGlobal”等图标按钮,将会发现在PowerBuilder环境中编程是非常简便的。
尤其是SQL语句的输入画板,十分方便快捷,即使对SQL语句不熟悉也可以输入完整、正确的SQL语句,可以说,PowerBuilder的SQL语句画板,也是一个学习SQL语句的很好的工具。
单击选中“确定”命令按钮控件,选择右键弹出菜单中的SCript菜单项,进人SCript子窗口,选择事件下拉列表框中的Clicked控件,输入以下脚本。
Longll_id,ll_i
dateld_birthday
stringls_name,ls_nation,ls_home,ls_sex,ls_tel,ls_party
//数据格式检验
ifsle_id.text=””ORisNull(sle_id.text)then
messagebox(”缺少数据”,”请输入学号”)
sle_id.setfocus()
return
elseifsle_name.text=””ORisNull(sle_name.text)then
messagebox(”缺少数据”,”请输入学生姓名”)
sle_name.setfocus()
return
endif
Ifsle_birthday.text<>””ANDnotisNull(sle_birthday)then
ifisDate(sle_birthday.text)then
ld_birthday=date(sle_birthday.text)
else
messagebox(”输入数据错误”,”请使用“年-月-日”的日期格式”)
sle_birthday.setfocus()
return
endif
endif
ll_id=long(sle_id.text)
//取出党团员选择
ifrb_1.checked=truethenl
ls_party=rb_1.text
elseifrb_2.checked=truethen
ls_party=rb_2.text
else
ls_Party=rb_3.text
endif
//取出性别选择
ifrb_man.checked=truethen
ls_sex=rb_man.text
elseifrb_woman.checked=truethen
ls_sex=rb_woman.text
endif
//由民族ddlb,取出民族选择
ifddlb_nation.text="none"then
ls_nation=""
else
ls_nation=trim(ddlb_nation.text)
endif
//检查学导有无重号
SELECTstudent.stud_id
INTO:
ll_i
FROMstudent
WHEREstudent.stu_id=:
ll_id;
ifll_i<>0then
messageBox("错误信息","学号第"+string(ll_i)+"号重号!
请改正。
")
sle_id.setfocus()
return
endif
ls_name=trim(sle_name.text)
ls_home=trim(sle_home.text)
ls_tel=trim(sle_tel.text)
//向数据库写入数据
INSERTINTO"student"
("stud_id",
"name",
"birthday",
"sex",
"nation",
"home",
"tel",
"party",
"resume")
VALUES(:
ll_id,
:
ls_name,
:
ld_birthday,
:
ls_sex,
:
ls_nation,
:
ls_home,
:
ls_tel,
:
Is_party,
:
mle_resume.text);
//数据写入数据库后,将输入控件全部置空
sle_id.text=""
sle_name.text=""
sle_birthday.text=""
mle_resume.text=""
sle_home.text=""
sle_tel.text=""
sle_id.setfocus()//将光标放到“学号”输入栏
5.关联窗口W_studentinput到应用程序中
1)建立应用程序到数据库的连接。
双击Workspace画板中的mypb应用图标,进入mypb的open事件,输入以下脚本:
//Profilesample下面三行代码为连接参数
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="ConnectString='DSN=mydb;UID=sa;PWD='"
//连接数据库
connect;
//运行输入窗口
Open(w_studentinput)
其中,连接数据库的连接参数代码可以从Profile中粘贴过来:
(1)在Database画板的窗口中,选择“ODBC”项;
(2)在“ODBC”项下列出的所有可以连接数据库的DBProfile中选中“mydb”后单击右键,在弹出式菜单选择“Properties”,会重新弹出“DatabaseProfileSetup-ODBC”对话框,选择“preview”项,然后单击“copy”按钮。
见图2。
图2copy数据库的连接参数代码
(3)在mypb的open事件中粘贴数据库的连接参数代码。
如图3所示。
6.预览窗口和运行程序
在窗口设计过程中,按下“Preview”图标按钮,可以随时预览窗口运行时显示的实际效果。
设计完毕后,可以按“Run”图标按钮,即进入“学生基本情况输入”窗口,输入一些数据,每次输入一个学生数据后,按“确定”按钮或回车键。
按Esc键或“退出”按钮,退出输入学生数据对话框。
结束程序运行后,打开数据库,编辑student表,发现刚才输入的数据已经保存在表中了。
图3应用程序的open事件
思考与练习
1.下拉列表框的初始化程序还可以放在什么地方进行?
2.设计3个单选钮,分别为“本科生”、“硕士生”和“博士生”,再设计一个下拉列表框,用于显示课程,要求下拉列表框中显示的课程,随单选钮选择的不同而改变。
3.怎样用程序改变一组单选钮的选择?
实验三数据窗口的编程
目的和要求
(1)进一步加深对数据窗口的了解,熟悉数据窗口画板的使用和数据窗口对象属性的调整方法;
(2)加深对数据窗口类型、各种类型数据窗口的特点以及使用方法的认识;
(3)掌握选项卡控件的使用和编程方法;
(4)掌握数据窗口各种类型数据检索程序的设计方法。
上机准备
(1)复习窗口控件中关于选项卡控件的有关内容,有关数据窗口对象的内容,以及有关数据窗口控件的内容;
(2)启动PowerBuilder9.0;
(3)选择已经创建的应用mypb.pb1;
(4)连接数据库到已创建的student。
上机步骤
本次实验将制作一个数据库查询窗口,该窗口中有一个包含了4页的选项卡,分别对应于4种不同的查询方式。
第1页是按学生姓名查询,只要在姓名栏中输人要查询的学生姓名单击“查询”按钮,就可以在student表中查出该学生的数据,见图4;第2页是按学生的家庭地址的模糊查询,只要在地址栏中输入要查询地址的一部分信息,单击“查询”按钮,就可以在student表中查出与该地址有关的学生的数据,见图5;第3页是按学生的出生日期查询,只要在两个日期栏中分别输人日期的下限和上限,单击“查询”按钮,就可以查出在此时间段中出生的所有学生的数据,见图6;第4页是按学生的党团员情况查询,只要在组合框中单击要查询的单选钮,就可以在数据窗口中查出与该单选钮对应政治面貌的学生数据,见图7。
1.创建窗口对象
创建一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pb 实验 指导