课程代码名称数据库应用程序设计
一、填空题(每格1分,共20分)
1.三层C/S结构包括客户机、应用服务器和 三部分。
2.两个具有相同结构的关系R和S,它们的 运算是由属于R但不属于S的元组组成的集合。
3.在E-R图中,用矩形表示 ,用椭圆形表示 ,用菱形表示 。
4.数据库系统的技术文档包括 、 和 。
5.在Access 2002中,文本类型的最大长度为 。
6.DSN可以分成三种,分别是 、 和 。其中 可以被登录到系统中的所有用户使用。
7.可通过把TQuery组件的Active属性值设置为 来执行存放在SQL属性中的SQL语句。
8.TADOStoreProc组件通过 属性指定存放在服务器上的一个存储过程,应用程序可以执行这个存储过程。
9.一个Rave报表文件中可以包含 个报表,一个报表中可以包含 张报表页。
10.如果客户端要通过 协议连接到应用服务器,就需要使用TWebConnection组件。使用该组件进行连接,首先要设置应用服务器IIS,在应用服务器上,把 复制到IIS默认的scripts虚拟目录下并打开默认站点服务。该组件有一个重要的属性 ,用来定位应用服务器,该属性的值应设置为应用服务器上的“HTTPsrvr.Dll”所在的虚拟目录。
二、选择题(每题1分,共20分)
1. 使用Rave报表设计器的 组件,可以把数据库中的位图字段显示在报表上。
A.BitMap B.MetaFile C.DataText D.Section
2. 下列 组件最适合执行SQL的SELECT语句。
A.TADOConnection B.TADOCommand C.TADOTable D.TADOQuery
3. 下列不属于两层CS结构的特点是 。
A.安装与维护麻烦 B.客户端过于庞大 C.应用(企业)逻辑放在客户端 D.客户端只处理显示逻辑
4. 要使TQuery组件中的SQL语句执行后返回一个结果数据集,应调用TQuery组件的哪个方法?
第 1 页 共 8 页
A.Add
C.ExecSQL
5.
B.Open
D.Open和ExecSQL
6.
7.
8.
9.
10.
要使TDBNavigator组件能够浏览某个数据表中的记录,应把它的DataSource属性设置为 组件名。 A.TTable B.TDataSource C.TField D.不需设置
要给学生信息表(STUDENT)增加一个出生日期字段(日期型),下面正确的是 。 A.CREATE TABLE STUDENT ADD 出生日期 DATETIME B.ALTER TABLE STUDENT ALTER出生日期 DATETIME C.ALTER TABLE STUDENT ADD出生日期 DATETIME D.ALTER TABLE STUDENT SET出生日期 DATETIME
在ODBC层次结构中, 包含在ODBC32.DLL中,对用户是透明的,其任务是管理ODBC驱动程序,是ODBC中最重要的部件。 A.驱动程序管理器 D.ODBC API C.ODBC管理器 B.数据源名
在Access 2002中,要定义数据表某个字段的属性,应在 视图中进行。 A.数据表 B.数据库 C.关系 D.表设计
在数据库桌面中已经建立了一个数据库别名“MYALLAS”,现在要让TTable组件能够访问该别名下的数据表,应把它的 属性设置为该别名值。 A.TableType B.TableName C.Database D.DatabaseName
下列的哪个运算不是关系运算中的传统的集合运算? A.并 B.差 C.投影 D.交
11. “主机-终端”数据库应用系统的特点是终端只处理 逻辑? A.显示 B.应用 C.事务 D.数据
12. 通过TADOTable组件的 属性,可以设定正在被操作的数据表的名字。
A.TableName B.TableDirect C.CommandType D.CommandText
13. TQuery组件主要用于执行SQL语句,它执行的SQL语句存放在 属性中。
A.DatabaseName B.TableName C.DataSource D.SQL
第 2 页 共 8 页
14. 要使TDataSource组件与TTable组件相联系,应把它的 属性设置为TTable组件的名称。
A.DataSet B.DataField C.DataSource D.DatabaseName
15. 使用Database Desktop程序,不能完成下列的哪个功能?
A.创建和维护数据库表 B.创建和维护数据库别名 C.执行SQL语句 D.创建三层结构的数据库程序
16. 关于主键的说法不正确的是哪个?
A.它能够唯一地标识表中的每条记录 B.在主键字段中不允许Null值的存在 C.只能由一个字段组成 D.可用于与其他表中的外键建立关系
17. 下列的哪一项不是逻辑设计第一阶段(分析用户需求)产生的?
A.用户活动图 B.数据流图 C.数据字典 D.局部E-R图
18. 通过TRvProject组件可以可视化地访问Rave报表,TRvProject组件的 属性用来指明应用
程序使用的Rave报表项目文件的文件名。。 A.Execute B.LoadFromFile C.ProjectFile D.ReportName
19. 在关系运算中,根据具有相同属性名的字段相同进行联结,且在联结结果中去掉重复属性,这
样的运算是下面哪一个? A.内部联结 (连接) B.自然联结(连接) C.等值联结(连接) D.外部联结(连接)
20. 在关系模型中,同一个关系中的不同属性,其属性名 。
A.可以相同 B.不能相同 C.可以相同,但数据类型不同 D.必须相同
三、缩略语解释(每题2分,共10分)
1. 2. 3. 4. 5.
ODBC HTTP DBS RDO MADC
四、程序阅读(每题5分,共20分)
1.请解释下面一段程序的作用。
Procedure Tform1.table1BeforeDelete(DataSet: TDataSet); Begin //table1中的表是学生信息表S try
table2.indexName := ‘XH’; //学号作业索引名,table2中的表是选修表SC if table2.findkey([DataSet.fieldbyname(‘学号’).Asstring]) then
第 3 页 共 8 页
begin
//程序代码略,利用TQuery组件删除相应table2中的记录
end; except
on E:EDBEngineError do
showmessage(‘不能删除该记录’); end; End;
Procedure Tform1.table1AfterPost(DataSet: TDataSet); Begin
showmessage(‘数据保存成功’); End;
2.阅读下面的一段程序,请比较与第1题中代码的差别。
Procedure Tform1.table1AfterDelete(DataSet: TDataSet); Begin //table1中的表是学生信息表S
table2.indexName := ‘XH’; //学号作业索引名,table2中的表是选修表SC if table2.findkey([DataSet.fieldbyname(‘学号’).Asstring]) then begin
//程序代码略,利用TQuery组件删除相应table2中的记录 end; End;
3.分析第1题和第2题中存在的主要问题,解决这一问题的方法是什么,可以利用什么组件来解决这一问题。(提示:上述两段代码都涉及到两个表的删除操作)
4.解释下面的代码的作用。并对其进行注释。 procedure TForm1.Button1Click(Sender: TObject); begin
datasource1.DataSet := table1;
dbgrid1.DataSource := datasource1; table1.Close;
table1.DatabaseName := 'aa'; table1.TableName := ‘Students’; table1.Open; end;
五、编程题(每题5分,共30分)
1. 请将下面的程序补充完整,使之完成返回SC(选修表)中选修了课程号(Cno)为“01”的记
录。并将打开数据集后的当前记录的前三个字段值显示在组件edit1(文本编辑条)中。 Query1.Close; //关闭Query1 Query1. .Clear; //清除待执行语句
Query1.SQL. (‘SELECT * FROM SC WHERE Cno=’’01’’’);//查询语句定义 Query1. ; //执行查询
第 4 页 共 8 页
; //显示内容至edit1上
2. 在上一题的基础上,补充一段代码,将返回数据集中撮后一条记录的“Sno”、“Cno”和“Grade”
字段内容显示到组件edit2(文本编辑条)中。
3. 改造第1题中的代码,使之使用参数的方式进行查询,从edit3(文本编辑条)中读取用户输入
作为待查询的课程号,并以参数的形式传递给Query1,从而动态地返回选修记录。
4. 请将下面的程序补充完整,使之完成能够执行用户输入的SQL语句,该语句由edit4来获取。 ADOCommand1. := CmdText; //设置命令类型 ADOCommand1. := .text; //设置命令文本 ADOCommand1. ; //执行命令
5. 如果通过TADOQuery组件来完成第4题的任务,代码如何书写?(假设定义了TADOQuery组
件的实例为ADOQuery1)。由于不能保证用户输入的SQL语句一定正确,因此需要添加一些代码,保证程序运行的正确,即将出现SQL语句语法问题时,在label1(文本标签)上显示“SQL语句有错,请重新输入。”
6. 写一段代码完成第四题中第1题和第2题中被省略的代码(粗体字部分),利用TQuery组件完
成删除相应记录的操作。
浙江大学远程教育学院参
模拟试卷
课程代码名称 数据库应用程序设计
一、填空题(每格1分,共20分)
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 1. 2. 3. 4.
数据库服务器 差
实体集、属性、联系
系统说明书、技术说明书、使用说明书(无先后次序) 255
系统DSN、用户DSN、文件DSN、系统DSN(前三无先后次序) True
ProcedureName 多、多
HTTP、HTTPsrvr.Dll、URL
二、选择题(每题1分,共20分)
A D D B
5. 6. 7. 8.
B C A D
9. 10. 11. 12.
D C A A
13. 14. 15. 16.
D A D C
17. 18. 19. 20.
D C B B
三、缩略语解释(每题2分,共10分)
第 5 页 共 8 页
1. Open DataBase Connectivity:开放数据库连接,是数据库访问的标准
2. HyperText Transfer Protocol:超文本传输协议,基于TCP/IP,是因特网中最常用的网络传
输协议
3. DataBase System:由DBMS、应用程序、支持数据库运行的软硬件环境和DBA构成系统 4. Remote Data Object:远程数据对象,微软用于访问远程数据对象的技术
5. Microsoft Data Access Components:由微软提供的用于进行数据访问的最新技术,包括
DAO,RDO,ADO,ODBC和RDS等
第 6 页 共 8 页
四、程序阅读(每题5分,共20分,仅供参考)
1.
这是一个级联删除的示例,在删除S表前,先搜索SC表,若发现有与当前记录关联的记录存在,就先删除之。
如果在删除操作中遇到例外,将终止删除操作。
2.
这段同样是级联删除的示例,但与第1题不同的是,它是先删除S表记录,然后再根据被删除记录来决定是否删除SC表中的相应记录。
而且,即使发生例外,也不终止删除操作。 3.
第1题和第2题都涉及两个表的删除操作,可能会导致数据的一致性问题。解决的方法是利用事务处理机制,这一点可以利用TDatabase组件。利用该组件的事务处理方法可以解决这一问题。
4.
procedure TForm1.Button1Click(Sender: TObject); begin //Button1单击触发事件 datasource1.DataSet := table1; //设置TDataSource组件,使之与table1关联 end;
这段代码通过TDBGrid组件将组件table1中的表Students内容显示出来,并且此显示操作是通过单击按钮Button1来激发的。
dbgrid1.DataSource := datasource1; table1.Close; table1.DatabaseName := 'aa'; table1.TableName := ‘Students’;
//设置TDBGrid组件,使之与TDataSource关联 //关闭table1,为设置其他属性进行准备 //设置table1的数据源 //设置table1的待操作表
//取回数据集,并显示在关联组件上
table1.Open;
五、编程题(每题5分,共30分,供参考)
1.
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(‘SELECT * FROM SC WHERE Cno=’’01’’’); Query1.Open
Edit1.text := Query1.fields[0].asstring+Query.fields[1].asstring+Query1.fields[2].asstring; 2
Query1.Last;
Edit2.text := Query1.fieldbyname(‘sno’).asstring + Query1.fieldbyname(‘Cno’).asstring + Query1.fieldbyname(‘Grade’).asstring;
第 7 页 共 8 页
3.
Query1.SQL.Add(‘SELECT * FROM SC WHERE Cno=:cn’); Query1.parambyname(‘cn’).asstring := edit3.text; Query1.Open; 4.
ADOCommand1.CommandType := CmdText; ADOCommand1.CommandText := edit4.text; ADOCommand1.Excute; 5.
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(edit4.text);
Try
ADOQuery1.ExecSQL; Except
Label1.caption := ‘SQL语句有错,请重新输入。‘; End; 6.
Begin
Query1.close;
Query1.sql.clear;
Query1.sql.add(‘delete from SC where xh = :xh’);
Query1.params[0].asstring := DataSet.fieldbyname(‘学号’).Asstring;
Query1.execsql; End;
第 8 页 共 8 页
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务