数据库设计与应用实验指导书.doc_第1页
数据库设计与应用实验指导书.doc_第2页
数据库设计与应用实验指导书.doc_第3页
数据库设计与应用实验指导书.doc_第4页
数据库设计与应用实验指导书.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库设计与应用实验指导书 中国矿业大学数据库设计与应用实验指导书(工业工程专业试用)矿工二业工程学院系业00工七年七月程数据库设计与应用实验指导书-2-目录实验一ACCESS数据库的创建和操纵1实验二熟悉SQL Server2000系统环境及基本操作4实验三数据库访问程序的编制8附件1ACCESS软件内容介绍9附件2ADO数据访问原理17附件3数据库应用程序示例21附件4实验报告封面格式33数据库设计与应用实验指导书-1-实验一ACCESS数据库的创建和操纵1实验目的 (1)了解具体DBMS的功能和作用。 (2)掌握ACCESS数据库管理系统的基本操作。 (3)掌握用ACCESS设计数据库的过程和步骤。 2实验任务 (1)研究ACCESS的罗斯文(Northwind)示例数据库及其结构。 如果安装在C盘,则打开路径为CProgram filesMicrosoft officeOffice11samples (2)完成简化的学籍系统数据库的设计。 创建学生信息表、课程表、教师信息表、开课表、成绩表。 要求属性名用相应字拼音第一字母(如表中所示),为了方便记忆,在标题部分标注中文意思;确定并创建各个表的主键;确定并设定各个表中属性的约束条件;确定并创建表之间的关联。 各表结构如下(数据库名称统一为xueji)表格1学生信息表(表名Student)学号姓名年龄民族政治面貌所在学院所在系入学日期籍贯家庭所在地XH XMNL MZZZMMSZXYSZX RXRQJGJTSZD表格2教师信息表(表名Teacher)职工号姓名出生日期民族政治面貌职称最高学历所在学院所在系参加工作日期籍贯ZGH XMCSRQMZ ZZMMZCZGXLSZXYSZXGZRQ JG表格3课程表(表名Course)课程编号KCBH课程名KCM教材JC教材出版社先修课编号JCCBS XXKBH表格4开课表(表名TC)课程编号KCBH职工号ZGH课程说明KCSM表格5成绩表(表名SC)课程编号KCBH学号XH成绩CJ数据库设计与应用实验指导书-2- (3)向创建的表中添加某些实例记录能够完成以下相应的查询要求。 (4)用SQL语句创建基于上述表格的下列查询(Query)。 注上机前完成以下SQL语句的编写,上机时进行调试。 在书写SQL语句时注意相应属性的数据类型,字符常量用英文单引起括起来。 认真体会每个查询,注意保存结果,以便编制实验报告。 ?查询全体学生的学号与姓名;?查询全体学生的基本情况;?查询全体学生的姓名及其出生年份;?查询选修过课程的学生的学号;?查询计算机系全体学生的名单;?查询考试成绩有不及格的学生的学号;?查询年龄在19至21岁之间的学生姓名、系别和年龄;?查询年龄不在20至23岁之间的学生姓名、系别和年龄;?查询信息系、数学系和计算机系学生的姓名和性别;?查询不是信息系、数学系和计算机系学生的姓名和性别;?查询所有姓刘的学生的姓名、学号和性别;?查询“欧阳”且全名为3个汉字的学生的姓名;?查询名字中第二个字为“忠”字的学生姓名和学号;?查询不姓刘的学生姓名;?查询所有有成绩的学生学号和课程号;?查询计算机系年龄在19岁以下的学生姓名;?查询全体学生情况,要求查询结果按所在系升序排列,对同一系中的学生按年龄降序排列;?查询学生总人数;?查询选修了课程的学生人数;?查询学习“数据库”课程的学生最高分数;?查询各个课程号与相应的选课人数;?查询每个学生及其选修课程的情况;?查询每一门课的间接先修课(即先修课的先修课)?查询选修了“数据库”课程且成绩在90分以上的所有学生;?查询与“刘晨”在同一个系学习的学生姓名及所在系?查询选修了课程名为“管理信息系统”的学生学号和姓名;?查询其他系中比工业工程系任一学生年龄小的学生名单;?查询所有未选修“可靠性”课程的学生姓名;?查询计算机系的学生与年龄不大于19岁的学生的交集。 (5)按要求编制实验报告数据库设计与应用实验指导书-3-报告要求?对任务 (2)中设计的各个表注明其各个属性的约束;用关系图表示出各个表的关联,并加以说明;?对任务 (3)在报告中列出添加相应实例的各个表,要求每个表中的元组数目不能低于8行,但也不超过15个;?对任务 (4)在报告中写出SQL查询语句。 ?实验报告封面格式见附件4所示。 有条件的同学可以试着在SQL Server中完成相应的操作。 数据库设计与应用实验指导书-4-实验二熟悉SQLServer2000系统环境及基本操作1实验目的 (1)掌握SQL Server2000企业管理器,创建相应的数据库、基本表、视图、约束和索引的创建、修改和删除操作。 (2)掌握数据库的备份/还原和分离/附加操作。 (3)掌握身份验证模式的修改,登录帐号与角色的创建。 (4)学会使用查询分析器进行调试。 (5)掌握游标、存储过程、触发器的使用。 2实验任务 (1)熟悉SQL Server2000中企业管理器的使用环境; (2)练习启动/关闭数据库服务的三种方式(见教材P111); (3)熟悉SQL Server2000的安装目录(见教材P113P117); (4)观察SQL Server系统数据库和系统表; (5)察看当前系统的身份验证模式;步骤在企业管理器中左边树形图中,展开到服务器结点,选择服务器,然后单击鼠标右键,选择“属性”,再选择“安全性”选项卡。 (6)创建实验一中的学籍系统数据库,并把相应的数据/事务日志文件保存到“D:TSQL教学DATA”目录下,数据库名称为xueji。 如目录不存在请自建。 (7)练习创建五类约束,并输入数据体会约束的作用;(见教材P127P130) (8)练习创建索引的方法,对表及表中属性列进行修改、删除操作 (9)用实验一中的部分查询创建相应的视图,要求创建12个;(10)体会数据库的备份/还原与分离/附加操作; (11)请体会如下T-SQL程序(在查询分析器中进行实验)向数据库中添加两个日志文件USE xuejiGO ALTER DATABASE xueji ADD LOGFILE(NAME=test1log2,FILENAME=d:TSQL教学datatest2log.ldf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB),数据库设计与应用实验指导书-5-(NAME=test1log3,FILENAME=d:TSQL教学datatest3log.ldf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)向数据库中添加由两个文件组成的文件组Use xuejiALTERDATABASE xuejiADD FILEGROUP Test1FG1命名文件组GO ALTERDATABASExuejiADDFILE(NAME=test1dat3,FILENAME=d:TSQL教学datat1dat3.ndf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB),(NAME=test1dat4,FILENAME=d:TSQL教学datat1dat4.ndf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)TO FILEGROUPTest1FG1从数据库中删除文件USE xuejiGO ALTERDATABASE Test1REMOVE FILEtest1dat4GO创建工作表(jobs)Use xuejiCREATE TABLEjobs(job_id smallintIDENTITY(1,1)PRIMARY KEYCLUSTERED,job_desc varchar (50)NOT NULLDEFAULTNew Position-title notformalized yet,min_lvl tinyintNOT NULL数据库设计与应用实验指导书-6-CHECK(min_lvl=10),max_lvl tinyintNOT NULLCHECK(max_lvl=250)注请使用插入语句进行约束试验。 清空表操作Use xuejiDelete jobs删除表操作Use xuejiDrop jobs(12)根据任务 (6)创建的数据库完成以下各小题的测试,调试下面存储过程,写出每一步意思。 USE xuejiIF EXISTS(SELECT*FROM SYSOBJECTSWHERE TYPE=PAND NAME=TEST1)DROP PROCTEST1GO CREATEPROCEDURE test1test_cursor CURSORVARYING OUTPUTAS SETtest_cursor=CURSOR SCROLLSTATIC FORSELECT XH,XM FROMstudent OPENtest_cursor GODECLAREtt cursor,sno varchar (6),sname varchar (10)EXEC TEST1test_cursor=tt OUTPUTWHILEFETCH_STATUS=0BEGIN FETCHtt INTOsno,sname printThe resultis+sno+sname ENDfetch lastfromtt intosno,sname CLOSETT DEALLOCATETT GO数据库设计与应用实验指导书-7-按要求创建存储过程,并调试创建一个存储过程,计算student表中每一个学生的出生日期,并显示出来。 调试下列触发器,写出每一步的意思ALTER TABLEstudent ADDbirth_year INTGO IFEXISTS(SELECT*FROM sysobjectsWHERE name=tr_stu_birthAND type=tr)DROP TRIGGERtr_stu_birth GOCREATE TRIGGERtr_stu_birth ONstudent FORINSERT ASDECLAREsno varchar (6),age int,birthyear intSELECTsno=xh FROMINSERTED SELECTage=nl FROMstudent WHEREsno=xh IFisnull(age,0)0BEGIN SELECTbirthyear=year(getdate()-age UPDATEstudent SETbirth_year=birthyear WHERExh=sno ENDGO按要求创建触发器,并调试。 创建一个触发器,当删除student表中的记录中,自动删除SC表中该学生相应的记录。 (13)完成第7章第7第10题。 (14)按要求编制实验报告。 报告包括任务 (9)、 (12)、 (13)的内容。 其它不要求。 实验报告封面格式见附件4所示。 数据库设计与应用实验指导书-8-实验三数据库访问程序的编制1实验目的掌握数据库设计过程及数据库应用软件的基本开发模式。 2实验任务根据实验目的,结合专业课程或某方面需求自拟一个题目,开发一个数据库应用程序。 3、要求?界面合理,方便用户使用?数据库设计合理?能够进行多种条件的查询,包括各种组合查询。 ?能够方便地增添数据及删除数据,并正确更新到数据库中。 ?能够方便地进行有关数据的修改。 ?提供多种方式的浏览数据功能。 ?按格式编制实验报告。 实验报告封面格式见附件4所示。 学生成绩管理数据库访问程序示例见附件3。 数据库设计与应用实验指导书-9-附件1ACCESS软件内容介绍 (1)数据库创建方法两种通过向导创建或使用空白数据库来人工创建。 (强调一库多表)。 (2)数据表的创建方法三种;设计器,向导,输入数据;(重点介绍通过设计器来创建表) (3)使用表设计器Aess中字段的命名方法与其他数据库系统中的字段命名方法基本相同,所不Aess同的是,。 字段命名的规则如下?字段名所包含的字符数不得超过64个字符,包括空格在内,这些“字符是指单字节的字符,如果使用汉字来命名字段名,字符数需要减半;?字段名可以由字母、数字、标点符号等组成,可以使用汉字;?字段名中不能含有西文中的句号(.)、感叹号(!)及方括号()。 ?不能使用空格作为字段的第一个字符。 在Aess中可以使用的9种数据类型数据类型可存放的数据字节数文本字母、数字、字符、汉字0255备注字母、数字、字符、汉字065535数字数值 1、 2、4或8字节日期/时间日期/或时间8货币自动编号货币数据数值84是/否逻辑值1OLE对象图片、声音等超链接图片、声音、文档等字符串格式化字符格式化字符作用在该位置可以显示任意可用的字符&在该位置可以显示任意可用的字符,如果没有可用的字符要显示,Aess将不显示任何内容以大写字母显示数据库设计与应用实验指导书-10-+,-,$,(,)在字符串中直接显示这些字符“要显示的文本”显示用双引号括起来的任何文本显示该字符后面所跟的那个字符!左对齐*使用*号后面所跟字符来进行填充颜色设置所显示字符串的颜色文本类型字段的属性说明?字段大小设置该字段所占用的字节数,决定今后在该字段中所能输入的最多字符数,最大值为255。 ?格式设置该字段字符串的显示格式。 用上表中的格式化字符串的格式化字符。 ?输入掩码?标题在用Aess来创建的窗体中该标题来标识该字段。 ?默认值当增加新记录时,该字段所使用的预设值。 ?有效性规则设置限定该字段所能接受的输入值。 当输入的数据违反有效性规则的设置时,将显示有效性文本中的提示信息。 ?有效性文本当输入值不符合有效性规则时所显示的信息。 ?必填字段?允许空字符串?索引三种情况。 (加快搜索与排序)?Unicode压缩指定是否对该字段的文字进行Unicode压缩,压缩可以减少存储空间。 ?输入法模式设置当焦点移动到该字段时是否打开输入法。 (同上)?默认值当增加新记录时,该字段所使用的预设值。 该值可以通过使用表达式生成器来生成,“表达式生成器”对话框如下图所示。 在对话框中选择要使用的项目,然后单击“粘贴”按钮即可将其粘贴到表达式中。 数据库设计与应用实验指导书-11-/?格式设置字段的显示格式。 可以是一般日期、长日期、中日期、短日期、长时间、中时间、短时间等。 另外,在Aess中允许用户自定义日期/时间型字段的格式。 自定义格式可由两部分组成,它们之间用分号分隔,第一部分用来说明日期、时间的格式第二部分用来说明当日期/时间型字段为空(Null)时的显示格式。 有关日期/时间型字段的格式客符如下表。 日期/时间型格式字符格式字符作用设置小时、分、秒之间分隔符的位置/设置年、月、日之间分隔符的位置c按照一般日期格式显示aaa显示中文星期几d当日期是一位数时将日期显示成一位数dd当日期是一位数时将日期显示成两位数,例如2日显示成02日ddd显示星期的英文缩写dddd显示星期的完整英文名称ddddd按照短日期格式显示dddddd按照长日期格式显示w用数字来显示星期几ww显示是一年中的第几个星期m当月份是一位数时将月份显示成一位数当月份是一位数时将月份显示成两位数mm mmm显示月份的英文缩写显示月份的完整英文名称mmmm g显示季节Y显示是一年中的第几天YY用两位数显示年份YYYY用4位数显示的份数据库设计与应用实验指导书-12-h当小时是一位数时将小时显示成一位数hh当小时是一位数时将小时显示成两位数n当分钟是一位数时将分钟显示成一位数nn当分钟是一位数时将分钟显示成两位数s当钞种是一位数时将分钟显示成一位数ss当钞钏是一位数时将分钟显示成两位数按照长时间格式显示tttt AM/PM用适当的AM/PM显示12小时制时钟am/pm用适当的am/pm显示12小时制时钟A/P用适当的A/P显示12小时制时钟a/p用适当的a/p显示12小时制时钟AMPM按照WINDOWS中所设置的格式显示-+$这些字符可以直接用于显示“要显示的文字”显示双引号间的文本显示跟随其后的那个字符!左对齐*用跟随其后的那个字符作为填充字符颜色用于设置显示的颜色?同上自动编号字段是一种较为特殊的数据类型,当您每次向表中添加记录时,Aess会自动为该字段添加一个编号。 使用这种类型的字段可以保证在表中编号的唯一性。 当删除一条记录时,该字段并不重新编号,并且不再使用已被删除的编号。 ?新值设置新增加记录时编号是递增方式,还是递减方式。 /是/否型字段存放逻辑值。 ?格式在Aess中逻辑型字段可以有多种显示格式,如是/否、真/假、开/关等。 OLE OLE对象型字段存放其他Windows对象,为了使用用户能够浏览和该对象,该对象必须是由支持OLE的Windows应用程序所创建的,并且在以后使用数据库时,该应用程序被安装到Windows系统中。 数据库设计与应用实验指导书-13-Aess支持OLE对象的“链接”与“嵌入”。 当您选用链接方式时,OLE对象的数据仍旧保存在原来的文件中,这时如果原文件被修改,则链接OLE对象的内容也将被修改。 当您选用嵌入方式时,OLE对象的数据被插入到数据库文件中,这时如果原文件被修改,嵌入的OLE对象的内容并不会发生变化。 使用嵌入方式时,由于OLE对象的数据要插入到数据库中,可能使数据库文件变得很大。 超链接型字段超链接型字段用来存放通过超链接方式链接的Windows对象。 设置输入掩码输入掩码用于输入格式化的数据。 除备注、OLE对象、自动编号、逻辑等4种数据类型之外,都可以使用输入掩码来格式化输入数据。 输入掩码有3部分组成,各部分用分号分隔。 第一部分用来定义数据的格式,格式字符串如下表所示。 第二部分设置数据的存放方式,如果等于0,则按显示的格式进行存放,如果等于1,则只存放数据。 第三部分定义一个用来标明输入位置的符号,缺省时使用下划线。 如“TEL” (999)00000000;0;_输入掩码格式字符格式字符作用0必须在该位置输入数字L必须在该位置输入字母A必须在该位置输入字母或数字&必须在该位置输入字符或空格9只允许输入数字及空格,如果用户移动光标通过该位置而未输入任何内容,Aess将不储存任何内容#只允许输入数字、“+”或“-”符号以及空格,如果用户移动光标通过该位置而未输入任何内容,Aess将默认为空格?只允许输入字母,如果用户移动光标通过该位置而未输入任何内容,Aess将不储存任何内容a只允许输入字母或数字,如果用户移动光标通过该位置而未输入任何内容,Aess将不储存任何内容C只允许输入字母或空格,如果用户移动光标通过该位置而未输入任何内容,Aess将不储存任何内容字符从右向左填充!转换成大写字母.小数点位置数据库设计与应用实验指导书-14-,数字千位分隔符;、/日期时间分隔符显示后面所跟随的那个字符“文本”显示双引号括起来的文本设置主关键字在每个Aess表中都可以指定一个主关键字,主关键字可以包含一个或多个字段,以保证每条记录都具有唯一的值。 在单击字段选择按钮的同时按住“CTRL”键可以同时选择多个字段。 (4)获取外部数据源在Aess中除了可以直接输入数据外还可以从其他文件中获取数据,这样可以免去重复录入数据的麻烦。 方式有以下两种 (1)导入表 (2)链接表 (5)建立表之间的关系当在数据库定义了两个以上的表时,就需要通过表间的关系来将不同的表连接起来,使各表能同步工作。 要在两个表间建立关系,必须在这两个表中拥有相同数据类型的字段。 例如我们可以通过字段“身份证号码”来建立“职工基本情况”表和“职工工资情况”表之间的关系,其操作方法如下打开表所在的数据库窗口。 单击工具栏中的“关系”按钮,如果是第一次建立表之间的关系,则出现“显示表”对话框,如下图选择要建立关系的表,然后单击“添加”按钮,逐个添加要建立关系的表。 过盛所有要建立关系的表的添加后,单击“关闭”按钮,关闭“显示表”对话框。 数据库设计与应用实验指导书-15-如下图所示“关系”对话框中选择“职工基本情况表”中的“身份证号码”字段。 按下鼠标器左键,将其拖动到“职工工资表”中的“身份证号码”字段上,如下图所示。 释放鼠标键后出现“关系”对话框,如下图如果要在更新主表中主关键字字段的内容时,同步更新关系表中相关字段的内容,请在“关系”对话框中先选取“实话参照完整性”前面的复选框,再选取“级联更新相关字段”前面的复选框。 如果要在删除主表中记录的同时删除关系表中的相关记录,请在“关系”对话框中选取“实施参照完整性”前面的复选框,再选取“级联删除相关记录”前面的复选框。 需要注意的是,必须在所有关系表中都选择了该项,该项才有效,否则该项无效。 数据库设计与应用实验指导书-16-要设置表之间的联接方式,可以单击“联接类型”按钮,出现“联接属性”对话框,如下图,在该对话框中选择联接的方式。 单击“关系”对话框中“创建”按钮,创建表之间的关系,如下图。 从下图中可以看到,在创建关系的表之间有一条线将其联接起来,直观地显示出表之间的关系。 关闭“关系”对话框,这时Aess会询问您是否保存关系的设置,将设置的关系保存起来。 数据库设计与应用实验指导书-17-附件2ADO数据访问原理VB 1、DAO(Data AessObject)与Microsoft Jet 2、RDO(Remote DataObject)与ODBC数据驱动接口 3、ADO(ActiveX DataObject)与OLE DBMicrosoft推出的UDA(Universal DataAess,一致数据访问技术)包括两层软件接口?ADO应用层的编程接口;?OLE DB系统级的编程接口。 三个主体对象Connection;Command;Recordset。 四个集合对象Errors ErrorProperties PropertyParameters Parameter典型的ADO应用使用Connection对象建立与数据源的连接,然后用一个Command对象给出对数据库操作的命令,而Recordset用于对结果数据进行维护或者浏览等操作。 Fields Field数据库设计与应用实验指导书-18- 1、引用ADO对象库;打开“工程”菜单“引用”进入引用对话框;选择“Microsoft ActiveXData Objects2.0Library” 2、创建Connection对象Public nStuAs New ADODB.Connection 3、为Connection对象指定其连接的数据源类型Object.Provider=“数据源提供者名称”如CnnStu.Provider=“Microsoft.Jet.OLEDB.4.0” 4、指定具体数据源并打开Object.Open文件路径及文件名如CnnStu.Open App.Path&“studata.mdb”CursorLocation设置或返回游标位置。 (adUserClient)State查看当前对象的状态;ConnectionString用于建立到数据源的连接信息。 CommandTimeout终止尝试和产生错误之前执行命令期间需等待的时间。 ConnectionTimeout在终上尝试和产生错误之前建立间。 连接所等待的时Close关闭当前对象;BeginTrans启动新事务;CommitTrans保存所有更改并结束当事务;RollbackTrans取消当前事务中所做的任何更改并结束事务。 应用语法Object.BeginTrans Object.CommitTrans Object.RollbackTrans level=Object.BeginTrans()用于得到事务嵌套层次Execute执行指定的查询、SQL语句等内容。 应用语法Object.Execute CommandText,RecordsAffected Open打开到数据库的链接。 数据库设计与应用实验指导书-19-应用语法Object.Open ConnectionString,UserID,Password Cancel取消已挂起的Execute或Open方法的调用ActiveConnection设置Command当前所属的Connection对象CommandText包含要发送给数据提供者的文本。 CommandType CommandText类型。 State对象状态属性执行在CommandText中指定的内容。 应用语法Set RecordsetObj=Object.Execute取消执行被挂起的Execute方法的调用。 Dim CnAs NewADODB.Connection DimCmd AsNewADODB.CommandIf theADOTestTable doesnot exitOn ErrorGoTo AdoErrorCn.Open“MySample”,”Sa”Set Cmd.ActiveConnection=Cn Cmd.CommandType=adCmdText Cmd.CommandText=“drop tableMyTestTable”Cmd.Execute Cmd.CommandText=“create tableMyTestTable(id int,Name char (100)”Cmd.Execute Cmd.CommandText=“insert intoMyTestTable values(1,Pan Admin)”Cmd.Execute Cn.close Exitsub ConnectionCommandParameters数据库设计与应用实验指导书-20-AdoError:handle errorPublic rstStuAS NEWADODB.Recordset Set rstStu.ActiveConnection=Cn指定Recordset对象所属的Connection对象表示当前记录位于Recordset对象的第一个记录之前。 表示当前记录位于Recordset对象的最后的一个记录之后设置或返回游标位置。 表示在Recordset对象中使用的游标类型。 (动态、键集、静态、仅向前游标四种)常量说明adOpenForwardOnly仅向前游标,默认值。 与静态游标相同,但只能在记录中向前滚动。 当需要在记录集中单向移动时,可用于提高性能。 adOpenKeyset键集游标。 尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。 仍然可以看见其他用户更改的数据。 adOpenDynamic动态游标。 可以看见其他用户所作的添加、更改和删除。 允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。 adOpenStatic静态游标。 可以用来查找数据或生成报告的记录集合的静态副本。 另外,对其他用户所作的添加、更改或删除不可见。 设置或返回本地缓存中Recordset记录数返回经过查询操作所得到的记录集中记录的数目查看当前对象的状态;常量说明adLockReadOnly默认值,只读。 无法更改数据。 Connection RecordsetFields数据库设计与应用实验指导书-21-adLockPessimistic保守式记录锁定(逐条)。 提供者执行必要的操作确保成功记录,通常采用时立即锁定数据源的记录的方式。 adLockOptimistic开放式记录锁定(逐条)。 提供者使用开放式锁定,只在调用方法时锁定记录。 adLockBatchOptimistic开放式批更新。 用于与立即更新模式相反的批更新模式。 Object.Open Source,ActiveConnection,CursorType,LockType,Option应用方法rstStu.Open“Select*From Student”为可更新RecordSet对象创建新记录。 应用方法rstStu.AddNew rstStu.fields!Sno=Value保存对Recordset对象当前记录所做的所有更改。 应用方法rstStu.Update rstStu.Close通过重新执行对象所基于的查询,来更新Recordset对象中的数据。 应用方法rstStu.Requery分别移动对象指针使相应的记录为当前记录。 应用方法rstStu.Delete 1、Connecti onEvent事件ConnectionEvent事件RecordsetEvent事件两大类数据库设计与应用实验指导书-22-ConnectionEventBeginTransComplete CommitTransCompleteRollbackTransComplete事务管理关于连接上的当前事务已经开始、已经提交、或者已经回卷的通知。 WillConnect ConnectCompleteDisconnect连接管理关于当前连接即将开始、已经开始或已经结束的通知。 WillExceute ExecuteComplete命令执行管理关于连接的当前命令的执行即将开始或已经结束的通知。 2、RecordsetEvent事件RecordsetEvent WillChangeFieldFieldChangeComplete字段更改管理关于当前字段值即将更改或者已经更改的通知。 WillMove MoveCompleteEndofRecordset定位管理关于当前行在Recordset中的位置即将更改,已经更改、或者已经达到RecordSet结尾的通知。 WillChangeRecord RecordChangeComplete行更改管理关于Recordset当前行的某些地方即将更改,或者已经更改的通知WillChangeRecordset RecordsetChangeComplete记录集更改管理关于当前Recordset的某些地方即将更改,或已经更改的通知。 3、定义带有事件对象的方法Dim nStuAS NEWADODB.Connection DimWithEvent nStuEventAS ADODB.Connection setnStuEvent=nStu打开事件支持Set nStuEvent=Nothing关闭事件支持数据库设计与应用实验指导书-23-附件3数据库应用程序示例根据学生数据库(Stu.mdb)中的Student表的内容,本示例简单介绍了针对数据库进行插入、删除、浏览、查询、更改操作的VB代码实现。 所用数据库(stu.mdb)数据字典如表2- 1、2- 2、2-3所示。 表2-1Student基本表序号字段名称数据类型字段大小约束标题1Sno文本6主键学号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=0AndGrade=100成绩其中表2- 2、2-3在本示例中没有用。 示例程序界面设计状态见图2-1。 程序界面控件命名如表2-4所示。 表2-4程序界面控件控件类型程序命名Caption控件类型程序命名Caption DataGriddtgStu Frame Frame1学生基本信息汇总FrameFrame2信息维护Label lblSno学号TextBox txtSnoLabel lblSname姓名TextBox txtSname数据库设计与应用实验指导书-24-Label lblSsex性别ComboBox cboSsexLabel lblSbirthday出生日期DTPicker dtpSbirthdayLabel lblSphone家庭电话TextBox txtSphoneLabel lblSaddress家庭住址TextBox txtSaddressCommandButton cmdAdd添新同学/确认添加CommandButtoncmdUpdate/更新CommandButton cmdView浏览CommandButtoncmdFirst第一个CommandButton cmdNext下一个CommandButtoncmdPrior上一个CommandButton cmdLast最后一个CommandButtoncmdDelete删除CommandButton cmdQuery查询CommandButtoncmdExit退出图2-1程序界面设计状态程序代码如下定义连接对象变量,并使用NEW关键字注册。 定义记录集对象变量,并使用NEW关键字注册。 以下代码使信息维护区域的相应文本框置空,为添加记录做准备,其它两个控件性别与出生日期考虑控件性质不置空.txtSno.Text=数据库设计与应用实验指导书-25-txtSname=txtSphone=txtSaddress=End SubDisable_View_Control cmdUpdate.Caption=If cmdAdd.Caption=添新同学Then textClear cmdAdd.Caption=确认添加Enable_TxtSno使学号文本框能进行Enable_Txt_OtherControl自定义过程,使信息维护区域相关控件能进行txtSno.SetFocus ElseWith rstStu以下代码进行数据输入的有效性验证If Trim(txtSno)=Then有效性验证,主键不能为空MsgBox学号不能为空!,vbExclamation,请注意txtSno.SetFocus Exit Sub End If判断该学号是否已经存在!因为主键值是惟一的.Dim CurrentPositionAs VariantCurrentPosition=rstStu.Bookmark rstStu.Findsno=&Trim(txtSno.Text)&If rstStu.EOFTrue ThenMsgBox该记录已经存在!,vbExclamation,警告BindData把该记录显示到信息维护区域Exit Sub End If rstStu.Bookmark=CurrentPosition恢复游标指针位置If Trim(txtSname)=Then程序所加的约束,姓名不能为空MsgBox姓名不能为空!,vbExclamation,请注意txtSname.SetFocus ExitSub End If If Trim(cboSsex.Text)=Then程序所加的约束,性别不能为空MsgBox性别不能为空!,vbExclamation,请注意数据库设计与应用实验指导书-26-cboSsex.SetFocus ExitSub End If以下代码向数据库添加记录内容.AddNew先在记录集所在内存开辟一个保存新记录的空间.Fields(Sno)=Trim(txtSno)利用trim函数防止前后空格的输入.Fields(Sname)=Trim(txtSname).Fields(Ssex)=cboSsex.Text.Fields(Sbirthday)=dtpSbirthday.Value If Not Trim(txtSphone)=Then.Fields(Sphone)=Trim(txtSphone)End IfIfNotTrim(txtSaddress)=Then.Fields(Saddress)=Trim(txtSaddress)End If.Update使内存中的新记录保存到物理数据库中End WithIf MsgBox(是否继续添加呢?,vbYesNo)=vbYes ThentextClearcmdAdd.Caption=确认添加txtSno.SetFocus ElsecmdAdd.Caption=添新同学Disable_TxtSno使学号文本框不能Disable_Txt_OtherControl自定义过程,使信息维护区域相关控件处于不能进行状态End IfEnd IfEnd SubDisable_TxtSno使学号文本框不能Disable_Txt_OtherControl自定义过程,使信息维护区域相关控件处于不能进行状态cmdAdd.Caption=添新同学cmdUpdate.Caption=rstStu.Delete adAffectCurrentadAffectCurrent为Delete方法的默认常量值,表示仅删除当前记录,另一个常量为adAffectGroup,表示删除满足当前Filter属性设置的记录.End Sub数据库设计与应用实验指导书-27-rstStu.Close关闭记录集对象,释放资源SetrstStu=Nothing销毁记录集变量,回收内存nStu.Close关闭连接对象,释放资源Set nStu=Nothing销毁连接对象,回收内存Unload MeEnd SubDisable_TxtSno使学号文本框不能Disable_Txt_OtherControl自定义过程,使信息维护区域相关控件处于不能进行状态cmdAdd.Caption=添新同学cmdUpdate.Caption=rstStu.MoveFirst使游标指针指向第一条记录BindData绑定信息维护区域相应控件,使其显示当前游标指针所指记录的内容End SubDisable_TxtSno使学号文本框不能Disable_Txt_OtherControl自定义过程,使信息维护区域相关控件处于不能进行状态cmdAdd.Caption=添新同学cmdUpdate.Caption=rstStu.MoveLast使游标指针指向最后一条记录BindData绑定信息维护区域相应控件,使其显示当前游标指针所指记录的内容End SubDisable_TxtSno使学号文本框不能Disable_Txt_OtherControl自定义过程,使信息维护区域相关控件处于不能进行状态cmdAdd.Caption=添新同学cmdUpdate.Caption=rstStu.MoveNext向后移动游标指针If rstStu.EOF=True Then判断当前指针位置是否在最后一条记录之后rstStu.MoveLast End If BindData绑定信息维护区域相应控件,使其显示当前游标指针所指记录的内容End SubDisable_TxtSno使学号文本框不能Disable_Txt_OtherControl自定义过程,使信息维护区域相关控件处于不能进行状态cmdAdd.Caption=添新同学数据库设计与应用实验指导书-28-cmdUpdate.Caption=rstStu.MovePrevious向前移

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论