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