《VB第11章使用VB开发SQLServer应用程序.ppt》由会员分享,可在线阅读,更多相关《VB第11章使用VB开发SQLServer应用程序.ppt(16页珍藏版)》请在金锄头文库上搜索。
1、第第11章章 使用使用VB开发开发SQL Server应用程序应用程序1.三步曲开端三步曲开端2.用用Field对象操作字段对象操作字段3.结合结合Recordset对象使用定位方法对象使用定位方法4.搜索记录集和表中的数据搜索记录集和表中的数据5.使用使用Bookmark属性记录在属性记录在Recordset中中的位置的位置1第第11章章 使用使用VB开发开发SQL Server应用程序应用程序开发一个集于开发一个集于ADO技术的技术的VB数据库应用程序的数据库应用程序的三步曲开端三步曲开端三步曲开端三步曲开端1.引用引用ADO类库类库2.利用利用ADO的的Connection对象连接可用的
2、数据源对象连接可用的数据源3.利用利用ADO的的Recordset对象返回需要操作的记录对象返回需要操作的记录集集2第第11章章 使用使用VB开发开发SQL Server应用程序应用程序1.中可引用中可引用ADO类库类库Microsoft ActiveX Data Objects 2.0 LibraryMicrosoft ActiveX Data Objects 2.1 LibraryMicrosoft ActiveX Data Objects 2.5 LibraryMicrosoft ActiveX Data Objects 2.6 Library引用引用ADO类库类库菜单:菜单:工程引用3
3、第第11章章 使用使用VB开发开发SQL Server应用程序应用程序Connection对象对象2.使用使用Connection对象连接可用的数据源对象连接可用的数据源定义定义1个个Connection对象对象;Dim cn As New ADODB.Connection设置设置Connection对象的对象的CursorLocation属性为属性为“位于客户端的游标位于客户端的游标”(adUseClient);cn.CursorLocation = adUseClient定义连接字符串定义连接字符串provider=MSDASQL;dsn=bookdb;uid=sa;pwd=;“(ODBC
4、)driver=SQL SERVER;server=toshiba;uid=sa;pwd=;database=bookdb“(OLE DB)通过通过Connection对象的对象的Open方法建立数据连接;方法建立数据连接;cn.Open provider=MSDASQL;dsn=bookdb;uid=sa;pwd=;(ODBC)cn.Open driver=SQL SERVER;server=toshiba;uid=sa;pwd=;database=bookdb (OLE DB)4第第11章章 使用使用VB开发开发SQL Server应用程序应用程序Recordset对象对象3.使用使用Re
5、coedset对象返回需要操作的记录集对象返回需要操作的记录集(临时表临时表)定义定义1个个Recordset对象对象;Dim rs As New ADODB.Recordset定义检索语句定义检索语句可以是:SQL查询语句:mysql = select top 1 * from book或直接是表名: mysql = “book通过通过Recordset对象的对象的Open方法返回记录集(建立临时表)方法返回记录集(建立临时表);rs.Open mysql, cn或rs.Open mysql, cn, adOpenStatic, adLockOptimistic, adCmdTable(分别
6、设定: CursorType、 LockType和Options参数)5第第11章章 使用使用VB开发开发SQL Server应用程序应用程序Close方法方法使用使用Connection和和Recordset的的Close方法方法通过使用Connection和Recordset的Close方法,可以释放记录集,关闭和数据源的连接。SetConnection=nothingConnection.Close和SetRecordset=nothingRecordset.CloseSet rs = nothingCn.Close6第第11章章 使用使用VB开发开发SQL Server应用程序应用程序
7、可以靠检查可以靠检查Field对象的对象的Value属性来获得字段的值属性来获得字段的值(因为Field对象的缺省属性是Value属性,你只要引用Field对象即可,不需要明显的引用Value属性)Field对象对象各种语法形式各种语法形式 :rs.Fields(LastName)rs!LastNamers!LastName在在Fields集合中,也可以用索引来标识集合中,也可以用索引来标识Field字段:字段: rstEmployees.Fields(0)可以使用索引循环遍历整个集合,在每一轮的循环中将索引的值加一。集合中的对象编号是从0开始的,因此第一个Field的编号为0,第二个为1,依
8、此类推。字段的顺序是由基本表决定的。通常按照打开记录集时取得的顺序对字段进行编号。 01.vbx7第第11章章 使用使用VB开发开发SQL Server应用程序应用程序(1) Recordset对象的对象的定位方法定位方法:MoveFirst方法用于转到记录集的第一行。MoveNext方法用于转到记录集的下一行。MovePrevious方法用于转到记录集的上一行。MoveLast方法用于转到记录集的最后一行。Move方法用于按说明的个数移动记录。 Recordset对象的定位方法对象的定位方法8第第11章章 使用使用VB开发开发SQL Server应用程序应用程序(2) 使用使用BOF和和EO
9、F遍历记录集遍历记录集Recordset对象的定位方法对象的定位方法BOFRecord#1Record#2Record#3EOFRecordset对象还提供了两个属性用于告知你此时是否到了记录集的开始处或末尾处;vEOF(EndofFile)属性为True时,表示你已移到了记录集的最后一个元素后面。vBOF(BeginningofFile)属性为True时,表示你已移到了记录集的第一个元素之前。9第第11章章 使用使用VB开发开发SQL Server应用程序应用程序(2) 使用使用BOF和和EOF遍历记录集遍历记录集Recordset对象的定位方法对象的定位方法通常用于遍历记录集的代码便是把定
10、位方法和BOF、EOF结合起来,通常代码是一个循环,如下:Do Until EOF从字段Field中读取数据rs.MoveNextLoop10第第11章章 使用使用VB开发开发SQL Server应用程序应用程序(3) 使用使用BOF和和EOF来确定一个记录集是否为空来确定一个记录集是否为空Recordset对象的定位方法对象的定位方法即使记录集中没有个记录,BOF和EOF属性也是可用的。事实上,判断记录是否为空的最好方法就是检验BOF和EOF的值,如果EOF和BOF都为True,记录集中便没有记录。BOF(No records returned)EOF02.vbx11第第11章章 使用使用V
11、B开发开发SQL Server应用程序应用程序(4) 使用使用RecordCount属性来确定记录集中记录的条数属性来确定记录集中记录的条数Recordset对象的定位方法对象的定位方法可以用RecordCount属性来找出在一个Recordset对象中一共有多少条记录。03.vbx(5) 当前记录在记录集中的位置当前记录在记录集中的位置有的时候需要确定当前记录在记录集中的位置,并将当前记录位置指示给用户。例如,可以用拨号盘或仪表盘等类型的控件显示当前的记录位置。以下属性可以指示当前的记录位置:AbsolutePosition属性。AbsolutePosition属性的值为当前记录相对于0的位
12、置。然而,不要误以为它就是记录号:在当前记录处于不定状态时,AbsolutePosition的值为一1。另外,在访问记录集时,不能保证记录每次都以同样的顺序出现。04.vbx12第第11章章 使用使用VB开发开发SQL Server应用程序应用程序(6) 改变记录的值改变记录的值 Recordset对象的定位方法对象的定位方法为了使用ADORecordset对象更新已有的记录,可以遵循如下步骤:1)打开一个记录集。2)给该Recordset对象中的字段分配值3)通过执行该Recodset对象的Update方法以保存该记录。4)rs.Fields (LastName) = Smith5)或者,因
13、为Fields是Recordset对象的缺省集合,在向字段赋值时可以省去对Fields集合的显式引用。6)rs!LastName = Smith4)用记录集的update方法把记录保存到数据库。13第第11章章 使用使用VB开发开发SQL Server应用程序应用程序(7) 用用AddNew 和和Update方法创建新记录方法创建新记录Recordset对象的定位方法对象的定位方法使用记录集的AddNew和Update方法,可以在任何可更新的Rocordset对象中创建新的记录,在记录集中创建新记录的过程分为三步:1)执行记录集的AddNew方法,这将在记录集的末尾添加一个新的空白记录。2)使
14、用通常向数据库字段赋值的语句为新记录赋值。3)用记录集的Update方法把记录写到数据库中。DataEntr.vbx14第第11章章 使用使用VB开发开发SQL Server应用程序应用程序搜索记录集和表中的数据搜索记录集和表中的数据搜索记录集中的数据搜索记录集中的数据搜索和查询不同。查询返回的是一个记录集。搜索在记录集的全部记录中查找满足你说明的条件的单个记录。针对ADO的记录集,搜索数据使用Recordset的Find方法。例如,假定你有一个由顾客组成的记录集,并且你对查找姓Smith的第一个顾客感兴趣,则可以使用以下的代码:rs.Find LastName=Smith特别要记住的是,与S
15、QLSELECT查询不同,搜索不会产生一个记录集。当Find方法搜索Recordset中满足指定条件的记录,如果条件符合,则记录集位置设置在找到的记录上,否则位置将设置在记录集的末尾。Finder.vbx查找客户:FirstName:DarylLastname:Halpin15第第11章章 使用使用VB开发开发SQL Server应用程序应用程序使用使用Bookmark属性记录你在属性记录你在Recordset中的位置中的位置使用使用Bookmark书签书签当你在一个Recordset对象上的执行操作时,移来移去是常有的事,有时还需要移回开始的地方,用Recordset对象的Bookmark属
16、性可以记住位置,以便以后能够返回这个位置。能提供Bookmark的记录集中,每个记录都有其自己的Bookmark,可以在任何时候进行检索和保存。但是书签并不是存储在数据库中,它们是在Recordset对象创建时自动生成的并且在Recordset对象被删除时自动丢弃。Bookmark.vbx使用书签的一般步骤如下:1)移到记录集中想标书签的位置。2)把Recordset对象的Bookmark属性值赋于一个变体型(Variant)的变量,这便为当前记录保存了唯一的书签。3)当想再回到该记录时,将变体型(Variant)的变量的值赋给记录集的Bookmark属性,当前记录变为标有书签的那个记录。16