版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中 国 矿 业 大 学数据库设计与应用实验指导书(工业工程专业试用)矿业工程学院工业工程系目 录实验一 ACCESS数据库的创建和操纵1实验二 熟悉SQL Server 2000系统环境及基本操作4实验三 数据库访问程序的编制8附件1 ACCESS软件内容介绍9附件2 ADO数据访问原理17附件3数据库应用程序示例21附件4 实验报告封面格式33实验一 ACCESS数据库的创建和操纵1实验目的(1)了解具体DBMS的功能和作用。(2)掌握ACCESS数据库管理系统的基本操作。(3)掌握用ACCESS设计数据库的过程和步骤。2实验任务(1)研究ACCESS的罗斯文(Northwind)示例数据库
2、及其结构。如果安装在C盘,则打开路径为:C:Program filesMicrosoft officeOffice11samples(2)完成简化的学籍系统数据库的设计。创建学生信息表、课程表、教师信息表、开课表、成绩表。要求:属性名用相应字拼音第一字母(如表中所示),为了方便记忆,在标题部分标注中文意思;确定并创建各个表的主键;确定并设定各个表中属性的约束条件;确定并创建表之间的关联。各表结构如下:(数据库名称统一为:xueji)表格 1 学生信息表(表名Student)学号姓名年龄民族政治面貌所在学院所在系入学日期籍贯家庭所在地XHXMNLMZZZMMSZXYSZXRXRQJGJTSZD表
3、格 2 教师信息表(表名Teacher)职工号姓名出生日期民族政治面貌职称最高学历所在学院所在系参加工作日期籍贯ZGHXMCSRQMZZZMMZCZGXLSZXYSZXGZRQJG表格 3 课程表(表名Course)课程编号课程名教材教材出版社先修课编号KCBHKCMJCJCCBSXXKBH表格 4 开课表(表名TC)课程编号职工号课程说明KCBHZGHKCSM表格 5 成绩表(表名SC)课程编号学号成绩KCBHXHCJ(3)向创建的表中添加某些实例记录能够完成以下相应的查询要求。(4)用SQL语句创建基于上述表格的下列查询(Query)。注:上机前完成以下SQL语句的编写,上机时进行调试。在
4、书写SQL语句时注意相应属性的数据类型,字符常量用英文单引起括起来。认真体会每个查询,注意保存结果,以便编制实验报告。² 查询全体学生的学号与姓名;² 查询全体学生的基本情况;² 查询全体学生的姓名及其出生年份;² 查询选修过课程的学生的学号;² 查询计算机系全体学生的名单;² 查询考试成绩有不及格的学生的学号;² 查询年龄在19至21岁之间的学生姓名、系别和年龄;² 查询年龄不在20至23岁之间的学生姓名、系别和年龄;² 查询信息系、数学系和计算机系学生的姓名和性别;² 查询不是信息系、数学系
5、和计算机系学生的姓名和性别;² 查询所有姓刘的学生的姓名、学号和性别;² 查询“欧阳”且全名为3个汉字的学生的姓名;² 查询名字中第二个字为“忠”字的学生姓名和学号;² 查询不姓刘的学生姓名;² 查询所有有成绩的学生学号和课程号;² 查询计算机系年龄在19岁以下的学生姓名;² 查询全体学生情况,要求查询结果按所在系升序排列,对同一系中的学生按年龄降序排列;² 查询学生总人数;² 查询选修了课程的学生人数;² 查询学习“数据库”课程的学生最高分数;² 查询各个课程号与相应的选课人数;
6、178; 查询每个学生及其选修课程的情况;² 查询每一门课的间接先修课(即先修课的先修课)² 查询选修了“数据库”课程且成绩在90分以上的所有学生;² 查询与“刘晨”在同一个系学习的学生姓名及所在系² 查询选修了课程名为“管理信息系统”的学生学号和姓名;² 查询其他系中比工业工程系任一学生年龄小的学生名单;² 查询所有未选修“可靠性”课程的学生姓名;² 查询计算机系的学生与年龄不大于19岁的学生的交集。(5)按要求编制实验报告报告要求:Ø 对任务(2)中设计的各个表注明其各个属性的约束;用关系图表示出各个表的关联,
7、并加以说明;Ø 对任务(3)在报告中列出添加相应实例的各个表,要求每个表中的元组数目不能低于8行,但也不超过15个;Ø 对任务(4)在报告中写出SQL查询语句。Ø 实验报告封面格式见附件4所示。建议:有条件的同学可以试着在SQL Server中完成相应的操作。实验二 熟悉SQLServer2000系统环境及基本操作1实验目的(1)掌握SQL Server 2000企业管理器,创建相应的数据库、基本表、视图、约束和索引的创建、修改和删除操作。(2)掌握数据库的备份/还原和分离/附加操作。(3)掌握身份验证模式的修改,登录帐号与角色的创建。(4)学会使用查询分析器进行
8、调试。(5)掌握游标、存储过程、触发器的使用。2实验任务(1)熟悉SQL Server 2000中企业管理器的使用环境;(2)练习启动/关闭数据库服务的三种方式(见教材P111);(3)熟悉SQL Server 2000的安装目录(见教材P113P117);(4)观察SQL Server系统数据库和系统表;(5)察看当前系统的身份验证模式; 步骤:在企业管理器中左边树形图中,展开到服务器结点,选择服务器,然后单击鼠标右键,选择“属性”,再选择“安全性”选项卡。(6)创建实验一中的学籍系统数据库,并把相应的数据/事务日志文件保存到“D:TSQL教学DATA”目录下,数据库名称为xueji。如目录
9、不存在请自建。(7)练习创建五类约束,并输入数据体会约束的作用;(见教材P127P130)(8)练习创建索引的方法,对表及表中属性列进行修改、删除操作(9)用实验一中的部分查询创建相应的视图,要求创建12个;(10) 体会数据库的备份/还原与分离/附加操作;(11)请体会如下T-SQL程序(在查询分析器中进行实验)向数据库中添加两个日志文件USE xuejiGO ALTER DATABASE xuejiADD LOG FILE ( NAME = test1log2, FILENAME = 'd:TSQL教学datatest2log.ldf', SIZE = 5MB, MAXSI
10、ZE = 100MB, FILEGROWTH = 5MB), ( NAME = test1log3, FILENAME = 'd:TSQL教学datatest3log.ldf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB)向数据库中添加由两个文件组成的文件组Use xuejiALTER DATABASE xuejiADD FILEGROUP Test1FG1 命名文件组GO ALTER DATABASE xuejiADD FILE ( NAME = test1dat3, FILENAME = 'd:TSQL教学datat
11、1dat3.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB), ( NAME = test1dat4, FILENAME = 'd:TSQL教学datat1dat4.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB) TO FILEGROUP Test1FG1 从数据库中删除文件USE xuejiGO ALTER DATABASE Test1 REMOVE FILE test1dat4 GO 创建工作表(jobs)Use xuejiCREATE TABLE jo
12、bs ( job_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, job_desc varchar(50) NOT NULL DEFAULT 'New Position - title not formalized yet', min_lvl tinyint NOT NULL CHECK (min_lvl >= 10), max_lvl tinyint NOT NULL CHECK (max_lvl <= 250) ) 注:请使用插入语句进行约束试验。清空表操作Use xuejiDelete jobs删除表操作Use
13、 xuejiDrop jobs(12) 根据任务(6)创建的数据库完成以下各小题的测试,调试下面存储过程,写出每一步意思。USE xuejiIF EXISTS(SELECT * FROM SYSOBJECTS WHERE TYPE='P'AND NAME='TEST1')DROP PROC TEST1GOCREATE PROCEDURE test1 test_cursor CURSOR VARYING OUTPUTASSET test_cursor=CURSOR SCROLL STATICFOR SELECT XH,XM FROM studentOPEN tes
14、t_cursorGO DECLARE tt cursor,sno varchar(6),sname varchar(10)EXEC TEST1 test_cursor=tt OUTPUTWHILE FETCH_STATUS=0 BEGIN FETCH tt INTO sno,snameprint 'The result is'+sno+' '+sname END fetch last from tt into sno,snameCLOSE TTDEALLOCATE TTGO按要求创建存储过程,并调试 创建一个存储过程,计算student表中每一个学生的出生日期,
15、并显示出来。调试下列触发器,写出每一步的意思ALTER TABLE studentADD birth_year INT GOIF EXISTS(SELECT * FROM sysobjects WHERE name='tr_stu_birth' AND type='tr')DROP TRIGGER tr_stu_birthGOCREATE TRIGGER tr_stu_birth ON studentFOR INSERTAS DECLARE sno varchar(6),age int,birthyear int SELECT sno=xh FROM INSER
16、TED SELECT age=nl FROM student WHERE sno=xh IF isnull(age,0)<>0 BEGINSELECT birthyear=year(getdate()-ageUPDATE studentSET birth_year=birthyearWHERE xh=sno ENDGO按要求创建触发器,并调试。 创建一个触发器,当删除student表中的记录中,自动删除SC表中该学生相应的记录。(13)完成第7章第7第10题。(14)按要求编制实验报告。 报告包括任务(9)、(12)、(13)的内容。其它不要求。实验报告封面格式见附件4所示。实验三
17、 数据库访问程序的编制1实验目的掌握数据库设计过程及数据库应用软件的基本开发模式。2实验任务根据实验目的,结合专业课程或某方面需求自拟一个题目,开发一个数据库应用程序。3、要求Ø 界面合理,方便用户使用Ø 数据库设计合理Ø 能够进行多种条件的查询,包括各种组合查询。Ø 能够方便地增添数据及删除数据,并正确更新到数据库中。Ø 能够方便地进行有关数据的修改。Ø 提供多种方式的浏览数据功能。Ø 按格式编制实验报告。 实验报告封面格式见附件4所示。学生成绩管理数据库访问程序示例见附件3。附件1 ACCESS软件内容介绍(1)数据库创
18、建方法两种:通过向导创建或使用空白数据库来人工创建。(强调一库多表)。(2)数据表的创建方法三种;设计器,向导,输入数据;(重点介绍通过设计器来创建表)(3)使用表设计器Access中字段的命名方法与其他数据库系统中的字段命名方法基本相同,所不同的是,在Access中允许字段名包含空格和标点符号。字段命名的规则如下:Ø 字段名所包含的字符数不得超过64个字符,包括空格在内,这些“字符是指单字节的字符,如果使用汉字来命名字段名,字符数需要减半;Ø 字段名可以由字母、数字、标点符号等组成,可以使用汉字;Ø 字段名中不能含有西文中的句号(.)、感叹号(!)及方括号()。
19、Ø 不能使用空格作为字段的第一个字符。在Access中可以使用的9种数据类型数据类型可存放的数据字节数文本字母、数字、字符、汉字0255备注字母、数字、字符、汉字065535数字数值1、2、4或8字节日期/时间日期/或时间8货币货币数据8自动编号数值4是/否逻辑值1OLE对象图片、声音等超链接图片、声音、文档等文本型字段字符串格式化字符格式化字符作用在该位置可以显示任意可用的字符&在该位置可以显示任意可用的字符,如果没有可用的字符要显示,Access将不显示任何内容<以小写字母显示>以大写字母显示+, -, $, (, )在字符串中直接显示这些字符“要显示的文本”
20、显示用双引号括起来的任何文本显示该字符后面所跟的那个字符!左对齐*使用*号后面所跟字符来进行填充颜色设置所显示字符串的颜色文本类型字段的属性说明:Ø 字段大小:设置该字段所占用的字节数,决定今后在该字段中所能输入的最多字符数,最大值为255。Ø 格式:设置该字段字符串的显示格式。用上表中的格式化字符串的格式化字符。Ø 输入掩码:Ø 标题:在用Access来创建的窗体中该标题来标识该字段。 Ø 默认值:当增加新记录时,该字段所使用的预设值。Ø 有效性规则:设置限定该字段所能接受的输入值。当输入的数据违反有效性规则的设置时,将显示有效性文
21、本中的提示信息。Ø 有效性文本:当输入值不符合有效性规则时所显示的信息。Ø 必填字段:Ø 允许空字符串:Ø 索引:三种情况。(加快搜索与排序)Ø Unicode压缩:指定是否对该字段的文字进行Unicode压缩,压缩可以减少存储空间。Ø 输入法模式:设置当焦点移动到该字段时是否打开输入法。备注型字段(同上)数字型字段Ø 默认值:当增加新记录时,该字段所使用的预设值。该值可以通过使用表达式生成器来生成,“表达式生成器”对话框如下图所示。在对话框中选择要使用的项目,然后单击“粘贴”按钮即可将其粘贴到表达式中。日期/时间型字段
22、216; 格式:设置字段的显示格式。可以是一般日期、长日期、中日期、短日期、长时间、中时间、短时间等。另外,在Access中允许用户自定义日期/时间型字段的格式。自定义格式可由两部分组成,它们之间用分号分隔,第一部分用来说明日期、时间的格式:第二部分用来说明当日期/时间型字段为空(Null)时的显示格式。有关日期/时间型字段的格式客符如下表。日期/时间型格式字符格式字符作用:设置小时、分、秒之间分隔符的位置/设置年、月、日之间分隔符的位置c按照一般日期格式显示aaa显示中文星期几d当日期是一位数时将日期显示成一位数dd当日期是一位数时将日期显示成两位数,例如2日显示成02日ddd显示星期的英文
23、缩写dddd显示星期的完整英文名称ddddd按照短日期格式显示dddddd按照长日期格式显示w用数字来显示星期几ww显示是一年中的第几个星期m当月份是一位数时将月份显示成一位数mm当月份是一位数时将月份显示成两位数mmm显示月份的英文缩写mmmm显示月份的完整英文名称g显示季节Y显示是一年中的第几天YY用两位数显示年份YYYY用4位数显示的份h当小时是一位数时将小时显示成一位数hh当小时是一位数时将小时显示成两位数n当分钟是一位数时将分钟显示成一位数nn当分钟是一位数时将分钟显示成两位数s当钞种是一位数时将分钟显示成一位数ss当钞钏是一位数时将分钟显示成两位数tttt按照长时间格式显示AM/P
24、M用适当的AM/PM显示12小时制时钟am/pm用适当的am/pm显示12小时制时钟A/P用适当的A/P显示12小时制时钟a/p用适当的a/p显示12小时制时钟AMPM按照WINDOWS中所设置的格式显示-+$这些字符可以直接用于显示“要显示的文字”显示双引号间的文本显示跟随其后的那个字符!左对齐*用跟随其后的那个字符作为填充字符颜色用于设置显示的颜色货币型字段Ø 同上自动编号字段自动编号字段是一种较为特殊的数据类型,当您每次向表中添加记录时,Access会自动为该字段添加一个编号。使用这种类型的字段可以保证在表中编号的唯一性。当删除一条记录时,该字段并不重新编号,并且不再使用已被删
25、除的编号。Ø 新值:设置新增加记录时编号是递增方式,还是递减方式。是/否型字段是/否型字段存放逻辑值。Ø 格式:在Access中逻辑型字段可以有多种显示格式,如是/否、真/假、开/关等。OLE对象型字段OLE对象型字段存放其他Windows对象,为了使用用户能够浏览和编辑该对象,该对象必须是由支持OLE的Windows应用程序所创建的,并且在以后使用数据库时,该应用程序被安装到Windows系统中。Access支持OLE对象的“链接”与“嵌入”。当您选用链接方式时,OLE对象的数据仍旧保存在原来的文件中,这时如果原文件被修改,则链接OLE对象的内容也将被修改。当您选用嵌入方
26、式时,OLE对象的数据被插入到数据库文件中,这时如果原文件被修改,嵌入的OLE对象的内容并不会发生变化。使用嵌入方式时,由于OLE对象的数据要插入到数据库中,可能使数据库文件变得很大。超链接型字段超链接型字段用来存放通过超链接方式链接的Windows对象。设置输入掩码输入掩码用于输入格式化的数据。除备注、OLE对象、自动编号、逻辑等4种数据类型之外,都可以使用输入掩码来格式化输入数据。输入掩码有3部分组成,各部分用分号分隔。第一部分用来定义数据的格式,格式字符串如下表所示。第二部分设置数据的存放方式,如果等于0,则按显示的格式进行存放,如果等于1,则只存放数据。第三部分定义一个用来标明输入位置
27、的符号,缺省时使用下划线。如:“TEL:”(999)00000000;0;_输入掩码格式字符格式字符作用0必须在该位置输入数字L必须在该位置输入字母A必须在该位置输入字母或数字&必须在该位置输入字符或空格9只允许输入数字及空格,如果用户移动光标通过该位置而未输入任何内容,Access将不储存任何内容#只允许输入数字、“+”或“-”符号以及空格,如果用户移动光标通过该位置而未输入任何内容,Access将默认为空格?只允许输入字母,如果用户移动光标通过该位置而未输入任何内容,Access将不储存任何内容a只允许输入字母或数字,如果用户移动光标通过该位置而未输入任何内容,Access将不储存
28、任何内容C只允许输入字母或空格,如果用户移动光标通过该位置而未输入任何内容,Access将不储存任何内容!字符从右向左填充<转换成小写字母>转换成大写字母.小数点位置,数字千位分隔符;、/日期时间分隔符显示后面所跟随的那个字符“文本”显示双引号括起来的文本设置主关键字在每个Access表中都可以指定一个主关键字,主关键字可以包含一个或多个字段,以保证每条记录都具有唯一的值。如何选取多个字段?在单击字段选择按钮的同时按住“CTRL”键可以同时选择多个字段。(4)获取外部数据源在Access中除了可以直接输入数据外还可以从其他文件中获取数据,这样可以免去重复录入数据的麻烦。方式有以下两
29、种:(1) 导入表:(2) 链接表(5)建立表之间的关系当在数据库定义了两个以上的表时,就需要通过表间的关系来将不同的表连接起来,使各表能同步工作。要在两个表间建立关系,必须在这两个表中拥有相同数据类型的字段。例如我们可以通过字段“身份证号码”来建立“职工基本情况”表和“职工工资情况”表之间的关系,其操作方法如下: 打开表所在的数据库窗口。 单击工具栏中的“关系”按钮,如果是第一次建立表之间的关系,则出现“显示表”对话框,如下图: 选择要建立关系的表,然后单击“添加”按钮,逐个添加要建立关系的表。过盛所有要建立关系的表的添加后,单击“关闭”按钮,关闭“显示表”对话框。 如下图所示“关系”对话框
30、中选择“职工基本情况表”中的“身份证号码”字段。 按下鼠标器左键,将其拖动到“职工工资表”中的“身份证号码”字段上,如下图所示。释放鼠标键后出现“编辑关系”对话框,如下图: 如果要在更新主表中主关键字字段的内容时,同步更新关系表中相关字段的内容,请在“编辑关系”对话框中先选取“实话参照完整性”前面的复选框,再选取“级联更新相关字段”前面的复选框。 如果要在删除主表中记录的同时删除关系表中的相关记录,请在“编辑关系”对话框中选取“实施参照完整性”前面的复选框,再选取“级联删除相关记录”前面的复选框。需要注意的是,必须在所有关系表中都选择了该项,该项才有效,否则该项无效。 要设置表之间的联接方式,
31、可以单击“联接类型”按钮,出现“联接属性”对话框,如下图,在该对话框中选择联接的方式。 单击“关系”对话框中“创建”按钮,创建表之间的关系,如下图。从下图中可以看到,在创建关系的表之间有一条线将其联接起来,直观地显示出表之间的关系。 关闭“关系”对话框,这时Access会询问您是否保存关系的设置,将设置的关系保存起来。附件2 ADO数据访问原理第一部分 VB数据访问技术概述一、VB数据访问技术的发展经历以下三个阶段:1、DAO(Data Access Object)与Microsoft Jet2、RDO(Remote Data Object)与ODBC数据驱动接口3、ADO(ActiveX D
32、ata Object)与OLE DBMicrosoft 推出的UDA(Universal Data Access,一致数据访问技术)包括两层软件接口: ADO 应用层的编程接口; OLE DB系统级的编程接口。二、ADO数据访问对象模型主要包括:三个主体对象:Connection;Command;Recordset。四个集合对象:Errors Error Properties Property Parameters Parameter Fields Field典型的ADO应用使用Connection对象建立与数据源的连接,然后用一个Command对象给出对数据库操作的命令,而Recordset
33、用于对结果数据进行维护或者浏览等操作。第二部分ADO对象一、Connection对象步骤:1、引用ADO对象库;打开“工程”菜单“引用”进入引用对话框;选择“Microsoft ActiveX Data Objects 2.0 Library”2、创建Connection对象 Public cnnStu As New ADODB.Connection3、为Connection对象指定其连接的数据源类型 Object.Provider = “数据源提供者名称” 如:CnnStu.Provider=“Microsoft.Jet.OLEDB.4.0”4、指定具体数据源并打开 Object.Open
34、文件路径及文件名如:CnnStu.Open App.Path & “studata.mdb”Connection对象中其他主要属性和方法:属性:CursorLocation设置或返回游标位置。(adUserClient)State查看当前对象的状态;ConnectionString用于建立到数据源的连接信息。CommandTimeout终止尝试和产生错误之前执行命令期间需等待的时间。ConnectionTimeout在终上尝试和产生错误之前建立连接所等待的时间。方法:Close关闭当前对象;BeginTrans 启动新事务;CommitTrans保存所有更改并结束当事务;Rollbac
35、kTrans 取消当前事务中所做的任何更改并结束事务。应用语法:Object.BeginTrans Object.CommitTrans Object.RollbackTranslevel=Object.BeginTrans() 用于得到事务嵌套层次Execute执行指定的查询、SQL语句等内容。应用语法:Object.Execute CommandText, RecordsAffectedOpen打开到数据库的链接。应用语法:Object.Open ConnectionString, UserID, PasswordCancel 取消已挂起的Execute或Open方法的调用二、Comman
36、d对象ConnectionCommandParameters属性:ActiveConnection设置Command当前所属的Connection对象CommandText 包含要发送给数据提供者的文本。CommandType CommandText类型。State对象状态属性方法:Execute执行在CommandText中指定的内容。应用语法:Set RecordsetObj=Object.ExecuteCancel 取消执行被挂起的Execute方法的调用。应用示例:Dim Cn As New ADODB.ConnectionDim Cmd As New ADODB.CommandIf
37、the ADOTestTable does not exitOn Error GoTo AdoErrorCn.Open “MySample”, ”Sa”Set Cmd.ActiveConnection=CnCmd.CommandType=adCmdTextCmd.CommandText=“drop table MyTestTable”Cmd.ExecuteCmd.CommandText=“create table MyTestTable(id int, Name char(100)”Cmd.ExecuteCmd.CommandText=“insert into MyTestTable valu
38、es(1, Pan Admin)”Cmd.ExecuteCn.closeExit subAdoError:handle error三、Recordset对象ConnectionRecordsetFields创建Recordset对象:Public rstStu AS NEW ADODB.Recordset Set rstStu.ActiveConnection=Cn主要属性:ActiveConnection指定Recordset对象所属的Connection对象BOF表示当前记录位于Recordset对象的第一个记录之前。EOF表示当前记录位于Recordset对象的最后的一个记录之后Curs
39、orLocation 设置或返回游标位置。CursorType 表示在Recordset对象中使用的游标类型。(动态、键集、静态、仅向前游标四种)常量说明adOpenForwardOnly仅向前游标,默认值。与静态游标相同,但只能在记录中向前滚动。当需要在记录集中单向移动时,可用于提高性能。adOpenKeyset键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。adOpenDynamic动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作
40、。adOpenStatic静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。CacheSize设置或返回本地缓存中Recordset记录数RecordCount 返回经过查询操作所得到的记录集中记录的数目State查看当前对象的状态;LockType 常量说明adLockReadOnly默认值,只读。无法更改数据。adLockPessimistic保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。adLockOptimistic开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用方法时
41、锁定记录。adLockBatchOptimistic开放式批更新。用于与立即更新模式相反的批更新模式。主要方法:Open方法Object.Open Source, ActiveConnection,CursorType, LockType, Option应用方法:rstStu.Open “Select * From Student”AddNew方法为可更新RecordSet对象创建新记录。应用方法: rstStu.AddNew rstStu.fields!Sno=ValueUpdate方法保存对Recordset对象当前记录所做的所有更改。应用方法: rstStu .Update Close方
42、法rstStu.Close Requery方法通过重新执行对象所基于的查询,来更新Recordset对象中的数据。应用方法:rstStu.RequeryMoveFirst, MoveLast, MoveNext, MovePrevious方法分别移动对象指针使相应的记录为当前记录。Delete方法删除当前记录或记录组。应用方法:rstStu.DeleteClone、Save、Move、Resync、UpdateBatch、CancelBatch、Cancel。第三部分 ADO事件过程概述ConnectionEvent事件两大类RecordsetEvent事件1、 ConnectionEvent
43、事件ConnectionEvent事件过程说明BeginTransCompleteCommitTransCompleteRollbackTransComplete事务管理:关于连接上的当前事务已经开始、已经提交、或者已经回卷的通知。WillConnectConnectComplete Disconnect连接管理:关于当前连接即将开始、已经开始或已经结束的通知。WillExceute ExecuteComplete命令执行管理:关于连接的当前命令的执行即将开始或已经结束的通知。2、 RecordsetEvent事件RecordsetEvent事件过程说明WillChangeFieldField
44、ChangeComplete字段更改管理:关于当前字段值即将更改或者已经更改的通知。WillMoveMoveCompleteEndofRecordset定位管理:关于当前行在Recordset中的位置即将更改,已经更改、或者已经达到RecordSet结尾的通知。WillChangeRecordRecordChangeComplete行更改管理:关于Recordset当前行的某些地方即将更改,或者已经更改的通知WillChangeRecordsetRecordsetChangeComplete记录集更改管理:关于当前Recordset的某些地方即将更改,或已经更改的通知。3、 定义带有事件对象的
45、方法Dim cnnStu AS NEW ADODB.ConnectionDim WithEvent cnnStuEvent AS ADODB. Connectionset cnnStuEvent=cnnStu 打开事件支持Set cnnStuEvent=Nothing 关闭事件支持附件3数据库应用程序示例 根据学生数据库(Stu.mdb)中的Student表的内容,本示例简单介绍了针对数据库进行插入、删除、浏览、查询、更改操作的VB代码实现。所用数据库(stu.mdb)数据字典如表2-1、2-2、2-3所示。表2-1 Student基本表序号字段名称数据类型字段大小约束标题1Sno文本6主键学
46、号2Sname文本10姓名3Ssex文本2性别4Sbirthday日期长日期出生日期5Sphone文本12家庭电话6Saddress文本50家庭住址表2-2Course基本表序号字段名称数据类型字段大小约束标题1Cno文本6主键课程号2Cname文本50课程名3CteacherName文本10任课教师4CBookName文本50教材名5Cpress文本50教材出版社表2-3Grade基本表序号字段名称数据类型字段大小约束标题1Cno文本6主键课程号2Sno文本6学号3Grade数字长整型Grade>=0 And Grade<=100成绩其中表2-2、2-3在本示例中没有用。示例程序
47、界面设计状态见图2-1。程序界面控件命名如表2-4所示。表2-4 程序界面控件控件类型程序命名Caption控件类型程序命名CaptionDataGriddtgStuFrameFrame1学生基本信息汇总FrameFrame2信息维护LabellblSno学号TextBoxtxtSnoLabellblSname姓名TextBoxtxtSnameLabellblSsex性别ComboBoxcboSsexLabellblSbirthday出生日期DTPickerdtpSbirthdayLabellblSphone家庭电话TextBoxtxtSphoneLabellblSaddress家庭住址Tex
48、tBoxtxtSaddressCommandButtoncmdAdd添新同学/确认添加CommandButtoncmdUpdate编辑/更新CommandButtoncmdView浏览CommandButtoncmdFirst第一个CommandButtoncmdNext下一个CommandButtoncmdPrior上一个CommandButtoncmdLast最后一个CommandButtoncmdDelete删除CommandButtoncmdQuery查询CommandButtoncmdExit退出图2-1 程序界面设计状态程序代码如下:Dim cnnStu As New ADODB.
49、Connection '定义连接对象变量,并使用NEW关键字注册。Dim rstStu As New ADODB.Recordset '定义记录集对象变量,并使用NEW关键字注册。Sub textClear() '以下代码使信息维护区域的相应文本框置空,为添加记录做准备, '其它两个控件性别与出生日期考虑控件性质不置空. txtSno.Text = "" txtSname = "" txtSphone = "" txtSaddress = ""End SubPrivate Sub c
50、mdAdd_Click() Disable_View_Control cmdUpdate.Caption = "编辑" If cmdAdd.Caption = "添新同学" Then textClear cmdAdd.Caption = "确认添加" Enable_TxtSno '使学号文本框能进行编辑 Enable_Txt_OtherControl '自定义过程,使信息维护区域相关控件能进行编辑 txtSno.SetFocus Else With rstStu '以下代码进行数据输入的有效性验证 If Tri
51、m(txtSno) = "" Then '有效性验证,主键不能为空 MsgBox "学号不能为空!", vbExclamation, "请注意" txtSno.SetFocus Exit Sub End If '判断该学号是否已经存在!因为主键值是惟一的. Dim CurrentPosition As Variant CurrentPosition = rstStu.Bookmark rstStu.Find "sno ='" & Trim(txtSno.Text) & &qu
52、ot;'" If rstStu.EOF <> True Then MsgBox "该记录已经存在!", vbExclamation, "警告" BindData '把该记录显示到信息维护区域 Exit Sub End If rstStu.Bookmark = CurrentPosition '恢复游标指针位置 If Trim(txtSname) = "" Then '程序所加的约束,姓名不能为空 MsgBox "姓名不能为空!", vbExclamation,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉安市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(夺分金卷)
- 保山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及参考答案详解一套
- 贵港市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(各地真题)
- 2026年铜陵市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(综合题)
- 阿克苏地区农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(模拟题)
- 自贡市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及1套完整答案详解
- 台北县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(培优b卷)
- 泉州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解
- 临沧市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(新)
- 葫芦岛市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(达标题)
- 学校网评员能力提升培训体系
- 四川省绵阳市2024-2025学年上学期八年级期末数学试卷(含答案)
- 全国统一市政工程预算定额 第8册 路灯工程
- 桥梁涂装专项施工方案
- 园林绿化工程绿化施工法律法规考核试卷
- 【大学课件】证券发行市场
- 新农村太阳能路灯照明设计方案
- 中国高血压防治指南(2024年修订版)解读课件
- 租赁共同经营协议模板
- GB/T 19609-2024卷烟用常规分析用吸烟机测定总粒相物和焦油
- 公路工程标准施工招标文件(2018年版)
评论
0/150
提交评论