《数据库的演讲幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据库的演讲幻灯片.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库的演讲数据库的演讲An Introduction to Database System第1页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemADO的形象化理解的形象化理解n我们通过一个生活中的例子来理解ADO对象的作用。n日常生活中我们引用的自来水是从远程的水库经过铺设的管道,最后流入千家万户的,如果我们把SQL Server 2000服务器比喻为水库,把数据比喻为水的话,那么ADO对象就是铺设的自来水管道。与生活中例子不同的是,数据库系统操作的数据还可能通过这条数据管道最后回流SQL Server 2000数据库。n有了ADO,我们在开发
2、数据库系统时就非常简单,大量的工作在开发前台应用界面上,然后将界面中显示数据的控件和ADO对象进行衔接即可。第2页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemADO的分类的分类nADO技术在实现上又分为ADODC和ADODB两种。两者的功能几乎完全一样,只是在实现的具体方式上有所不同。nADODC是一个图形化的ActiveX控件,而ADODB不以图形化控件的方式出现。第3页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemADO的分类的分类nADODC控件提供了有限的一些接口参数、属性和方法,初学
3、者通过简单的配置后就可以掌握该控件的使用方法,从而快速掌握ADO技术。ADODC提供了存取数据库数据的功能,但毕竟灵活性有限。n要通过ADO技术开发出强大的、灵活的数据库项目,就需要学习ADODB编程技术。n在Visual Basic这样的可视化编程工具中,既提供了ADODB,也提供了ADODC,两者既可以单独使用,也可以同时使用。第4页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemn前面我们利用ADODC控件编写了一个简单的数据库程序,下面来了解一个稍微复杂的ADODC控件编程实例,通过本例的学习,大家可以进一步掌握ADO的基本概念,之后再来
4、学习ADODB就会比较容易。第5页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemADODC编程编程ADODC如何连接数据库显示数据控件如何设置逻辑代码的处理第6页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem添加添加n单击添加按钮后的执行代码nPrivate Sub CmdInsert_Click()n 调用AddNew方法向记录集中添加记录n Adodc1.Recordset.AddNewn 设置其他按钮的状态n CmdInsert.Enabled=Falsen CmdDelete.Enabl
5、ed=Falsen CmdUpdate.Enabled=Falsen CmdFirst.Enabled=Falsen CmdPrevious.Enabled=Falsen CmdNext.Enabled=Falsen CmdLast.Enabled=Falsen CmdSave.Enabled=Truen CmdCancel.Enabled=TruenEnd SubAdodc1.Recordset为Adodc1控件的记录集,表示从目的表中提取出来的内存中的数据。AddNew是在内存中添加一条记录的方法。添加的记录这时并没有真正写入物理上的数据库中,而是存在于内存中,然后调用UPDATE方法才能
6、将数据真正添加第7页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem删除删除n单击删除按钮后的执行代码nPrivate Sub CmdDelete_Click()nDim Ans As Integern 在删除记录之前对用户有一个警告n Ans=MsgBox(确定删除该记录吗?,vbYesNo,警告)n If Ans=vbYes Thenn Adodc1.Recordset.Deleten End IfnEnd Sub第8页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem修改修改n单击修改按钮后的执
7、行代码nPrivate Sub CmdUpdate_Click()n 直接对文本框中的数据进行修改就可以,然后单击保存按钮就可以n CmdInsert.Enabled=Falsen CmdDelete.Enabled=Falsen CmdUpdate.Enabled=Truen CmdCancel.Enabled=Truen CmdSave.Enabled=Truen CmdFirst.Enabled=Falsen CmdPrevious.Enabled=Falsen CmdNext.Enabled=Falsen CmdLast.Enabled=FalsenEnd Sub因为显示数据控件直接取
8、之于Adodc1控件,也是直接在内存中对数据进行操作,所以对记录集进行修改直接在控件中过修改既可。修改后的数据需要调用update方法才能真正写入数据库中。第9页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem保存保存n单击保存按钮后的执行代码nPrivate Sub CmdSave_Click()n 通过Update方法将Recordset中的数据提交到数据库n Adodc1.Recordset.Updaten 恢复其他控件的属性n CmdInsert.Enabled=Truen CmdDelete.Enabled=Truen CmdUpdat
9、e.Enabled=Truen CmdFirst.Enabled=Truen CmdPrevious.Enabled=Truen CmdNext.Enabled=Truen CmdLast.Enabled=Truen 同时使保存和取消按钮失效n CmdSave.Enabled=Falsen CmdCancel.Enabled=FalsenEnd Sub记录集的update方法用来完成将内存中更改后的记录集提交到物理数据库中,即真正将数据写入数据库。第10页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem取消取消n单击取消按钮后的执行代码nPriv
10、ate Sub CmdCancel_Click()n 通过CancelUpdate方法取消对数据的保存n Adodc1.Recordset.CancelUpdaten 恢复其他控件的属性n CmdInsert.Enabled=Truen CmdDelete.Enabled=Truen CmdUpdate.Enabled=Truen CmdFirst.Enabled=Truen CmdPrevious.Enabled=Truen CmdNext.Enabled=Truen CmdLast.Enabled=Truen 同时使保存和取消按钮失效n CmdSave.Enabled=Falsen Cmd
11、Cancel.Enabled=Falsen End Sub记录集的CancelUpdate方法用于取消对内存中记录的修改第11页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem首记录首记录n单击首记录按钮后的执行代码nPrivate Sub CmdFirst_Click()n 调用MoveFirst方法指向记录集的首记录n Adodc1.Recordset.MoveFirstnEnd Sub记录集的MoveFirst方法表示将游标移动到记录集的第一条记录。什么是cursor(游标)?Recordset是内存中的一块特殊的部分,它在内存中是一个密不
12、可分的整体。我们无法把它拆开来访问,而应用程序一般需要一种逐行读取数据的机制,希望对Recordset中的某个记录进行操作。这就要用到游标机制。游标可以理解为很多个指向Recordset对象的指针,通过游标用户可以对指定位置记录进行处理。第12页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem前一条前一条n单击前一条按钮后的执行代码nPrivate Sub CmdPrevious_Click()n 移动记录到前一条的方法是MovePreviousn 在调用MovePrevious方法之前,首先需要判断,当前是不是已经到了最前面n 判断方法是调用B
13、OF属性,如果BOF为真,则表示一定到了最前,不能移动n 否则会出错n If Not Adodc1.Recordset.BOF Thenn Adodc1.Recordset.MovePreviousn Else 如果为真,则移动到第一条记录n Adodc1.Recordset.MoveFirstn End IfnEnd Sub第13页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem后一条后一条n单击后一条按钮后的执行代码nPrivate Sub CmdNext_Click()n 移动记录到下一条的方法是MoveNextn 在调用MoveNext方
14、法之前,首先需要判断,当前是不是已经到了最后n 判断方法是调用EOF属性,如果EOF为真,则表示一定到了最后,不能移动n 否则会出错n If Not Adodc1.Recordset.EOF Thenn Adodc1.Recordset.MoveNextn Else 如果为真,则移动到最后一条记录n Adodc1.Recordset.MoveLastn End IfnEnd Sub第14页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem尾记录尾记录n单击尾记录按钮后的执行代码nPrivate Sub CmdLast_Click()n 调用Move
15、Lastn Adodc1.Recordset.MoveLastnEnd Sub第15页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem隐藏隐藏ADODC控件控件第16页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemADODB的体系结构的体系结构n从以上的例子可以看出利用ADODC控件就可以开发出功能完备的vb数据库系统了,但是ADO中的ADODB才真正体现了面向对象编程方法,这也是大家今后学习其他编程工具的精髓。第17页,共29页,编辑于2022年,星期六AnIntroductiontoDatab
16、aseSystemADODB的体系结构的体系结构nADODB主要包括3个对象:Connection对象、Recordset对象和Command对象。nConnection对象的作用就是建立客户机和服务器之间的数据通道;nRecordset对象的作用是在客户机内存中开辟的一块区域,该区域存储的就是从数据库中按照要求提取出来的数据;nCommand对象是用来执行SQL语句或存储过程的对象。(用得很少)第18页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem引用引用ADODB对象对象n使用ADODB对象的方法和ADODC控件不一样,ADODB是没有图形
17、化的控件,所以使用ADODB对象的方法是首先进行引用,然后进行实例化。第19页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem引用引用ADODB对象对象第20页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem不同的计算机环境和安装的软件不一样,导致出现的ADODB可用的版本可能有多种,在开发时常见的是ADODB2.6,这是几乎所有的windows操作系统都支持的。第21页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem实例化实例化ADODB对象对象n引
18、用了ADODB后仅仅是告诉vb程序中将要使用ADODB对象了,这样在编译程序时将自动寻找ADODB对象的定义,而不会出现用户类型未定义的提示信息。nADODB引入后,下面需要实例化ADODB,生成自己程序中要使用的对象。第22页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemn实例化对象的方法如下:nDim 对象实例名称 as new 对象库名称.对象类型名称n例如:nDim conn As New ADODB.ConnectionnDim rs as new adodb.recordset第23页,共29页,编辑于2022年,星期六AnIntr
19、oductiontoDatabaseSystemADODB的的Connection对象对象nConnection对象的使用方法举例:第24页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemn定义一个名为conn的connection对象,好比是买了自来水管道nDim conn As New ADODB.Connectionn定义字符串类型的连接串nDim connstr As Stringn单击实例化Connection对象按钮后的执行代码nPrivate Sub CmdExecute_Click()n connstr=Provider=SQLO
20、LEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=db_student;Data Source=lqn conn.ConnectionString=connstrn 打开服务器上的水闸n conn.Open connstrn 中间的处理过程n.n 关闭服务器的水闸n conn.Closen 撤销管道,释放系统资源n Set conn=Nothingn MsgBox 成功完成Connection对象的操作流程,成功提示nEnd Subn单击退出按钮后的执行代码nPrivat
21、e Sub CmdExit_Click()n Unload MenEnd Sub第25页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem第26页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemADODB的的Recordset对象对象nRecordset对象的使用方法举例:第27页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystemn定义一个名为conn的connection对象,好比是买了自来水管道nDim conn As New ADODB.Connec
22、tionn定义一个名为rs的Recordset对象,好比是客户机上准备存水的容器nDim rs As New ADODB.Recordsetn定义字符串类型的连接串nDim connstr As Stringn单击实例化Recordset对象按钮后的执行代码nPrivate Sub CmdExecute_Click()n connstr=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=db_student;Data Source=lqn con
23、n.ConnectionString=connstrn 打开服务器上的水闸n conn.Open connstrn 将提取出来的数据放在客户机的内存中n rs.CursorLocation=adUseClientn 打开水龙头n rs.Open T_STUDENT,conn,adOpenKeyset,adLockPessimisticn 中间的处理过程n.n 关闭水龙头n rs.Closen关闭服务器的水闸n conn.Closen 撤销容器,释放系统资源n Set rs=Nothingn 撤销管道,释放系统资源n Set conn=Nothingn MsgBox 成功完成Recordset对象的操作流程,成功提示nEnd Subn单击退出按钮后的执行代码第28页,共29页,编辑于2022年,星期六AnIntroductiontoDatabaseSystem小结小结第29页,共29页,编辑于2022年,星期六
限制150内