好文档 - 专业文书写作范文服务资料分享网站

上海高等教育自学考试数据库系统原理实践

天下 分享 时间: 加入收藏 我要投稿 点赞

上海市高等教育自学考试计算机信息管理、网络、软件专业 (独立本科段)

《数据库系统原理》实践性环节考核大纲

一、考核目标

1. 具有熟练使用PowerBuilder 9.0建立本地数据库和基本表、视图的能力。 2.掌握使用PowerBuilder 9.0建立数据库应用程序的方法。

二、运行环境

1. 平台:Windows 2000 2. PowerBuilder 9.0 软件

三、考核方式 实行闭卷考核。

四、考核时间和日期

上机考核每次为1小时;考核日期另行规定。

五、考核范围

1. 数据库的基本操作

建立数据库;连接数据库;建立表、主键、外键; 数据插入、查询、删除和修改;建立视图。 2. 建立数据库应用程序

建立工作空间、目标、应用;建立数据窗口对象;

建立主窗口(含数据窗口、命令按鈕、静态文本框和单行编辑器等控件); 书写脚本;运行应用程序。

六、上机参考书籍及内容

《数据库系统原理》,全国高等教育自学考试指导委员会组编,丁宝康主编,经济科学出版社2007年版。

教材“第8章 PowerBuilder 9.0 简介及应用”中 8.2节(“学生选课系统”开发过程)中“‘数据操作'窗口”的有关内容。具体上机样题见下面内容七。 七、上机样题(一)上机题目

在PowerBuilder9.0环境中完成下面两个任务:

·建立一个有关学生、课程、选修等有关信息的数据库;

·建立有关数据浏览、插入、查找、修改和删除等操作的应用程序及界面。

(二)操作步骤 (应严格按照下列步骤操作)

1. 建立数据库newdb (数据库文件newdb.db必须保存在C:\\temp目录下)。 (自动连接数据库,ODBC数据源名也为newdb)。

2. 在数据库newdb中建立三张表: s(sno,sname,age,sex)

c(cno,cname,tname) sc(sno,cno, score)

型。char其余均为,型smallint为score和,age上述属性中 在表s中,主键是sno; 在表c中,主键是cno;

在表sc中,主键是(sno,cno),外键有两个:sno和cno。 请分别为这三个表输入下列记录:

s表: c表: sc表:

sno cno cno cname sex sno sname age tname score s1

c1 95 wen s1 18 c1 m pascal shi 90 bao c2 25 c2 f s1 basic lou s2 85 20 s1 c3 f ma s3 c3 li c 80 c++ s4

m men he c4 s1 22 c4

75

s2 c4

3.建立统计学生平均成绩的视图:s_sc(sno,sname,avg_score) (注意:建立视图后,应把数据库先Disconnect,再Connect)

4. 建工作空间 (C:\\temp\\student.pbw) 建目标 (C:\\temp\\student.pbt)

建应用 (C:\\temp\\student.pbl)

5. 在应用中建立四个数据窗口对象d_s、d_sc、d_c、d_s_sc, 分别显示三个表s、sc、c和视图s_sc的数据。

6. 在应用中建立主窗口w_main,主窗口中应包含: ·四个数据窗口控件(dw_1、dw_2、dw_3、dw_4), 分别显示表s、表sc、表c、和视图s_sc的数据。 ·八个命令按钮控件。

·一个静态文本控件:放“输入数据:”字样。

·一个单行编辑器控件(sle_1):用于输入数据,以便进行查找和修改。 程序的主界面如下:

显示表S的数据 显示表C的数据 显示视图S_SC的数据 显示表SC的数据

dw_1 dw_2 BROWSE 输入数据: RESET dw_3 dw_4 INSERT_SCUPDATE_SC QUERY_SNO EXIT OK DELETE_SC

(sle_1) 单行编辑器控件8个命令按钮控件

7. 在应用各对象中书写脚本,使该应用具有下列功能:

① 应用运行开始时,出现w_main窗口,其中四个数据窗口控件中内容为空白。 ② 点击“BROWSE”按钮,显示表s、表sc、表c和视图s_sc的内容,并可浏览。 ③ 点击“RESET”按钮,能把四个数据窗口控件中内容置为空白。 表中插入一条记录,内容请自定;sc点击“INSERT_SC”按钮,可在 ④. 再点击“OK”按钮,可把这条记录插入到数据库中。 ⑤ 点击“DELETE_SC”按钮,可在sc表中删除当前记录; 再点击“OK”按钮,可把这条记录从数据库中删除。

⑥ 在单行编辑器中输入一个整数(譬如5)后,点击“UPDATE_SC”按钮, 可将sc表当前记录的成绩值增加这个整数值(5); 再点击“OK”按钮,可把这条记录的修改写入数据库中。

⑦ 在单行编辑器中输入一个学号(譬如s1)后,点击“QUERY_SNO”按钮, 可在s表、sc表和视图s_sc中显示该学生情况和其所学课程及平均成绩情况。 ⑧ 点击“EXIT”按钮,返回(退出应用)。

8.运行应用student。

9.据考场规定的方法,把C:\\temp目录下的内容发送到服务器的存储器中。

(三)参考答案 (编写脚本)

1.在应用student.pbl的open事件中写脚本:

SQLCA.DBMS=ODBC //数据库厂商的名称

SQLCA.AutoCommit=False //定义程序是手工提交事务

兓???慐浲尽潃湮捥却牴湩?甥?社卄?敮摷╢??尲 //DBMS 所需的额外信息 /*上述三条可从DB Profile对话框中的Preview选项的内容复制、粘贴得到*/ connect; //连接数据源newdb! open(w_main) //打开主窗口w_main

2.在主窗口w_main的各个对象中书写脚本:

① 在主窗口w_main的open事件中写脚本:

dw_1.settransobject(sqlca) //给数据窗口控件dw_1设置通讯区域sqlca //给数据窗口控件dw_2设置通讯区域sqlca dw_2.settransobject(sqlca) //给数据窗口控件dw_3设置通讯区域dw_3.settransobject(sqlca) sqlca //给数据窗口控件dw_4dw_4.settransobject(sqlca) 设置通讯区域sqlca // sle_1.setfocus() 将焦点设置到控件 sle_1

② 命令按钮BROWSE的Clicked事件:

dw_1.retrieve() s从数据库的表中检索全部数据 // dw_2.retrieve() //从数据库的sc 表中检索全部数据

表中检索全部数据 dw_3.retrieve() //从数据库的c //从视图s_sc dw_4.retrieve() 中检索全部数据

③ 命令按钮RESET的Clicked事件:

string query

dw_1.reset() //清除数据窗口控件dw_1中的所有行 //清除数据窗口控件dw_2中的所有行 dw_2.reset() 中的所有行// dw_3.reset() 清除数据窗口控件dw_3

dw_4.reset() 中的所有行 dw_4//清除数据窗口控件 \\ query= // 置过滤条件为空 的过滤条件dw_1修改// dw_1.setfilter(query) dw_1.filter() //过滤数据

// 修改dw_2dw_2.setfilter(query) 的过滤条件 // 过滤数据 dw_2.filter()

//修改 dw_4dw_4.setfilter(query) 的过滤条件 //dw_4.filter() 过滤数据

//置单行编辑器为空 sle_1.text=\\ //将焦点设置到控件 sle_1 sle_1.setfocus()

④ 命令按钮INSERT_SC的Clicked事件:

dw_2.insertrow(0) //在sc表的尾部插入一行

dw_2.scrolltorow(dw_2.rowcount()) //把指定行设置为当前行 dw_2.setfocus() //将焦点设置到控件dw_2

⑤ 命令按钮DELETE_SC的Clicked事件:

dw_2.deleterow(0) //从数据库的sc表中删除当前行

⑥ 命令按钮UPDATE_SC的Clicked事件:

int g1,g2

g1=integer(sle_1.text) //取单行编辑器中的整数

//取当前记录的原grade 值g2=dw_2.GetItemNumber(dw_2.GetRow(),3) //在原grade值上增加g1 dw_2.SetItem(dw_2.GetRow(),3,g2+g1) 值

⑦ 命令按钮OK的Clicked事件:

// if dw_2.update()=1 then 将修改传送到数据库,成功否

// 传送成功,事务提交 commit; else

// 传送不成功,事务回退 rollback; end if

⑧ 命令按钮QUERY_SNO的Clicked事件:

string query

dw_3.reset() //清除数据窗口控件dw_3中的所有行 // 设置过滤条件query=sno='+sle_1.text+' //修改dw_1 的过滤条件 dw_1.setfilter(query) dw_1.filter() //过滤数据

//从 dw_1.retrieve() s 表中显示检索到的数据 //修改dw_2 dw_2.setfilter(query) 的过滤条件 //过滤数据 dw_2.filter()

//从 dw_2.retrieve() sc表中显示检索到的数据

dw_4.setfilter(query) //修改dw_4的过滤条件 dw_4.filter() // 过滤数据

//从视图s_sc dw_4.retrieve() 中显示检索到的数据 // sle_1.setfocus() 将焦点设置到控件sle_1

⑨ 命令按钮EXIT的Clicked事件:

// close(parent) 关闭按钮所在的窗口

(四)程序运行结果

按钮就可以运行程序了,程序界面如下所示。Run上的PowerBar程序编制完成以后,单击

3oeeh3cj3z9epjx24qwd4i6jo0x1tb0124p
领取福利

微信扫码领取福利

微信扫码分享