VB中的ADO对象编程_第1页
VB中的ADO对象编程_第2页
VB中的ADO对象编程_第3页
VB中的ADO对象编程_第4页
VB中的ADO对象编程_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

VB中的ADO对象编程,补充内容,ADO(ActiveXDataObjects)ActiveX数据对象,是微软最新的数据访问技术,与OLEDB一起工作。OLEDB是一个低层的基于COM的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种数据源,包括关系型数据库、电子邮件系统、自定义的商业对象。其模型如下:,VB应用程序,ADO,OLEDB,RDBMS,Email,目录管理,先在VB工程中把ADO对象库加载上,工程引用选中microsoftactivexdataobject2.7library,一、通过DSN建立连接,DSN:应用程序用以请求一个连到ODBC(opendatabaseconnectivity,开放数据库互连)数据源的连接的名字。也就是说他代表ODBC连接的名字,隐藏了诸如数据库名字、所在目录、数据库驱动程序、用户ID、密码等,使具体的数据库对应用程序变得透明。,1、DSN分类:系统DSN:可以被登陆到系统中的所有用户使用。用户DSN:为特定用户建立的,只能被建立他的用户使用。文件DSN:用于文档的DSN。,2、如何建立Access的系统DSN:(Winxp)(1)开始控制面板性能维护管理工具数据源ODBC;(2)单击系统DSN选项卡添加创建新数据源,3、建立SQLServer系统DSN,Dimcnaasnewadodb.connectionDimcnbasnewadodb.connectionPrivatesubcommand1_click()DimcnastringasstringCnastring=“dsn=sqlpubs;uid=sa;pwd=1234”SQLDSN数据源的连接字符串Withcna.connectionstring=cnastring.connectiontimeout=10.openEndwith或:cna.open“dsn=sqlpubs;uid=sa;pwd=1234”Cna.close关闭连接Endsub,Privatesubcommand2_click()DimcnbstringasstringCnbstring=“dsn=aa;uid=;pwd=”AccessDSN数据源的连接字符串Withcnb.connectionstring=cnastring.connectiontimeout=10.openEndwith或:cnb.open“dsn=aa;uid=;pwd=”Cnb.close关闭连接Endsub,二、直接使用数据库文件名,1、SQLServer的连接字符串“driver=SQLServer;server=bjz;database=pubs;uid=sa;pwd=1234”2、Access的连接字符串(1)“driver=Microsoftaccessdriver(*.mdb);DBQ=“password=”,ADO中比较重要的是:Command,Connection,Recordset对象,(1)Connection对象Connection对象用于建立与数据库的连接,通过连接可从应用程序访问数据源.它保存诸如指针类型,连接字符串,查询超时,连接超时和缺省数据库这样的连接信息。,2)Command对象在建立Connection后,可以发出命令操作数据源。一般情况下,Command对象可以在数据库中添加,删除或更新数据,或者在表中进行数据查询。Command对象在定义查询参数或执行一个有输出参数的存储过程时非常有用。,(3)Recordset对象Recordset对象只代表一个记录集,这个记录集是一个连接的数据库中的表,或者是Command对象的执行结果返回的记录集.在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。Record对象用于指定行,移动行,添加,更改,删除记录.,在实际编程过程中使用ADO的一个典型的存取数据的步骤为:1、连接数据源2、打开记录集对象3、使用记录集4、断开连接,1、如何连接数据源利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法.语法:Connection对象.OpenConnectionString,UserID,PassWord,OpenOptions其中:Connection对象为你定义的Connection对象的实例;ConnectionString为可选项,包含了连接的数据库的信息;UserID可选项,包含建立连接的用户名;PassWord为可选项,包含建立连接的用户密码;OpenOptions为可选项,假如设置为dConnectAsync,则连接将异步打开.,2.打开记录集对象实际上记录集返回的是一个从数据库取回的查询结果集.因此有三种打开方法:一种使用记录集的Open方法。另一种是用Connection对象的Execute方法.一种是用Command对象的Execute方法.,(a)记录集的Open方法语法:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options其中:Recordset为所定义的记录集对象的实例.Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名.ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串.CursorType可选项,确定打开记录集对象使用的指针类型.LockType可选项确定打开记录集对象使用的锁定类型.,(b)Connection对象的Execute方法语法:Setrecordset=Connection.Execute(CommandText,RecordsAffected,Options)参数说明:CommandText一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本.RecordsAffected可选项,Long类型的值,返回操作影响的记录数.Options可选项,Long类型值,指明如何处理CommandText参数.,(c)Command对象的Execute方法使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.语法如下:Command.ExecuteRecordsAffected,Parameters,Options不返回记录集或者SetRecordset=command.Execute(RecordsAffected,Parameters,Options)返回记录集CommandText的语法为:Command.CommandText=stringvariable其中:stringvariable为字符串变量,包含SQL语句,表名或存储过程.,3.使用记录集(a)添加新的记录:在ADO中添加新的记录用的方法为:AddNew它的语法为:Recordset.AddNewFieldList,ValuesRecordset为记录集对象实例FieldList为一个字段名,或者是一个字段数组.Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数,类型与FieldList相同的数组.当用AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.(记录的修改),(b)删除记录在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了.它的语法如下:Recordset.DeleteAffectRecords其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下:adAffectCurrent只删除当前的记录adAffectGroup删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.,(c)查询记录在ADO中查询的方法很灵活,有几种查询的方法.使用连接对象的Execute方法执行SQL命令,返回查询记录集.使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.使用记录集的Open方法,返回查询记录集。,4.断开连接在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序.使用的方法为:Close方法.语法如下:Object.CloseObject为ADO对象如果不做的话,通常VisualBasic会自动释放和回收资源。rs.CloseSetrs=NothingSetcmd=Nothingcn.CloseSetcn=Nothing,二、数据库访问对象(ADO),ADO(ActiveXDataObjects)ActiveX数据对象是微软最新的数据访问技术,与OLEDB一起工作。在VisualBasic中使用ADO在一个打开的VisualBasic6.0的工程中,选择菜单工程/引用命令,出现“引用”对话框。在“可用的引用”列表框中选择MicrosoftActiveXDataObjects2.8选项,单击确定按钮,就可以在程序中加入对ADO的引用了。,使用ADO可以实现以下目的:连接一个本地数据库或远程数据库打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询或存储过程或该数据库中的表的视图的记录集合将数据字段的值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值添加新的记录,或根据对绑定的控件中的数据的更改来更新一个数据库,ADO的内置对象1、连接对象(Connection)用来与数据库建立连接。在建立连接前,最主要的是需要设置连接字符串,用来指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。常用的属性与方法:ConnectionString属性:连接字符串,在打开连接前需要设置ConnectionTimeout和Mode属性:超时时间和连接模式,一般在打开连接前也需要设置CursorLocation属性:设置或者返回游标位置DefaultDatabase属性:为连接指定一个默认的据库Provider属性:为连接指定一个驱动程序,可以包括在ConnectionString中Open,Close方法:建立或中断一个连接Execute方法:在连接上执行命令,比如执行一个SQL语句Errors对象:数据源返回的错误信息(eg),“连接”是交换数据所必需的环境,通过“连接”可使应用程序访问数据源。Connection对象用于指定专门的提供者和任意参数。下表列出Connection对象的常用属性和方法。,如何连接利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法.语法:Connection对象.OpenConnectionString,UserID,PassWord,OpenOptions其中:Connection对象为你定义的Connection对象的实例;ConnectionString为可选项,包含了连接的数据库的信息;UserID可选项,包含建立连接的用户名;PassWord为可选项,包含建立连接的用户密码;OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开.,直接使用数据库文件名建立连接,1、SQLServer的连接字符串“driver=SQLServer;server=;database=student;uid=sa;pwd=xxxx”2、Access的连接字符串(1)“driver=Microsoftaccessdriver(*.mdb);DBQ=“password=”,2、命令对象(Command)定义了数据库的一系列操作。使用命令对象来查询数据库,查询结果以数据集对象(Recordset)形式返回。命令对象在操纵数据库前需要与一个已经打开的连接对象(Connection)建立关联。常用的属性与方法:ActiveConnection属性:将一个命令行对象与一个打开的连接关联CommandText属性:定义命令行的内容,比如SQL语句等CommandType属性:指定命令的类型CommandTimeout属性:指定服务器等待一条命令执行的时间Execute方法:执行命令并返回一个数据集对象(Recordset),3、数据集对象(Recordset)定义了从数据库返回的一系列记录的集合。通过数据集可以对记录及组成记录的列进行各种操作。常用的属性与方法:RecordCount属性:返回记录集中记录的条数BOF,EOF属性:返回记录集中游标的当前位置是否是记录集的头或尾MoveNext,MovePre:将记录集中的游标向后、前移动一个位置MoveFirst,MoveLast:将记录集中的游标移动到最前或最后,打开记录集对象实际上记录集返回的是一个从数据库取回的查询结果集.因此他有三种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法.第三种是使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.,1.记录集的Open方法语法:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options其中:Recordset为所定义的记录集对象的实例.Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名.ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串.CursorType可选项,确定打开记录集对象使用的指针类型.LockType可选项确定打开记录集对象使用的锁定类型.,使用recordset的open方法返回记录集:dimcnasnewadodb.connectiondimrsasnewadodb.recordsetDimcnstring$,strsql$Cnstring=“driver=SQLServer;server=;database=student;uid=sa;pwd=”Strsql=“select*from基本情况where班级=”05网一“or班级=”05网二“”Cn.opencnstringRs.openstrsql,cn,1,1,记录集类型,1是键集游标,记录集锁类型1:只读3:开放式可以update,CursorType(游标类型)有四种:程序中常用第二种AdOpenKeyset,AdOpenForwardOnly=0只能用MoveNext读取,并且打开的同时建立的数据库的备份,不能即时体现数据库记录状态,比如记录的编辑和增删.AdOpenKeyset=1可上下滚动的游标,给打开的记录创建了一个关键字列表,类似记录集的描述,访问的时候才去取得数据值,就是说可以即时看到修改信息,但是不能即时得到数据是否删除的信息,因为这个关键字列表是事先初始化好的.AdOpenDynamic=2完全可滚动,可得到数据的最新状态,执行效率也会有所降低.AdOpenStatic=3完全可滚动,但是和adOpenKeyset类似,它先将数据库备份文件之后进行操作.可以断开数据库连接后继续使用.,ADO锁的类型有四种:AdLockReadOnly=1只读锁,不能操作记录AdLockPessimistic=2悲观锁,操作者打开之后立即上锁,直到修改完成或者放弃修改为止,此时其他人无法编辑.AdLockOptimistic=3乐观锁,当记录将要被更新的时候才开始上锁,但是不能保证在提交修改之前是否有人改动过.AdLockBatchOptimistic=4批量乐观锁,SQLserver中要使用它,必须打开一个可上下滚动的游标,如adOpenKeyset,adOpenStatic.,2.Connection对象的Execute方法语法:Setrecordset=Connection.Execute(CommandText,RecordsAffected,Options)参数说明:CommandText一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本.RecordsAffected可选项,Long类型的值,返回操作影响的记录数.Options可选项,Long类型值,指明如何处理CommandText参数.,使用connection的execute方法返回记录集:dimcnasnewadodb.connectiondimrsasnewadodb.recordsetDimcnstring$,strsql$Cnstring=“driver=SQLServer;server=;database=student;uid=sa;pwd=”Strsql=“select*from基本情况where班级=05网一or班级=05网二”Cn.opencnstringSetRs=cn.execute(strsql),3.使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.,Command对象的Execute方法的语法如下:Command.ExecuteRecordsAffected,Parameters,Options不返回记录集或者SetRscordset=command.Execute(RecordsAffected,Parameters,Options)返回记录集CommandText的语法为:Command.CommandText=stringvariable其中:stringvariable为字符串变量,包含SQL语句,表名或存储过程.,使用command对象的execute方法返回记录集:dimcnasnewadodb.connectiondimrsasnewadodb.recordsetDmandDimcnstring$,strsql$Cnstring=“driver=SQLServer;server=;database=student;uid=sa;pwd=”Strsql=“select*from基本情况where班级=05网一or班级=05网二”Cn.opencnstringcmd.activeconnection=mandtext=strsqlSetRs=cmd.execute,使用记录集reordset(a)添加新的记录:在ADO中添加新的记录用的方法为:AddNew它的语法为:Recordset.AddNewFieldList,ValuesRecordset为记录集对象实例FieldList为一个字段名,或者是一个字段数组.Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数、类型与FieldList相同的数组.用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.,(b)删除记录在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了.它的语法如下:Recordset.DeleteAffectRecords其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下:adAffectCurrent只删除当前的记录adAffectGroup删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.,(c)查询记录在ADO中查询的方法很灵活,有几种查询的方法.实际上记录集返回的是一个从数据库取回的查询结果集.因此有三种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法.使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.将记录集与数据绑定控件进行绑定,即可显示记录信息。,常见步骤:1.打开Connection对象,DimcnAsADODB.Connection声明ADODB.Connection对象变量DimstrcnAsString声明存放连接串的字符串变量Setcn=NewADODB.Connection实例化Connection对象生成连接串(ConnectionString)strcn=driver=SQLServer;server=;database=student;uid=sa;pwd=”调用Connection对象的方法Ope

温馨提示

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

评论

0/150

提交评论