ADO简介

2016-02-19 12:52 28 1 收藏

有了下面这个ADO简介教程,不懂ADO简介的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - 编程语言 】

简介
  ActiveXDataObjects(ADO)是微软最新的数据访问技术。它被设计用来同新的数据访问层OLEDBProvider一起协同工作,以提供通用数据访问(UniversalDataAccess)。OLEDB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
  ADO向我们提供了一个熟悉的,高层的对OLEDB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLEDB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLEDB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLEDB提供者(OLEDBprovider)。目前,虽然OLEDB提供者比较少,但微软正积极推广该技术,并打算用OLEDB取代ODBC。
  
  ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。
  
  本文的目的是带你进入ADO广阔的世界并开始使用它。
  
  在哪里能得到ADO?
  目前ADO1.5版已经可以从微软网站免费下载。到目前为止,微软网站仍是你获取有关ADO最新信息的最佳场所。ADO1.5是作为OLEDBSDK的一部分提供的。你可以从下面这个网址下载:
  http://www.microsoft.com/data/oledb/download.htm
  
  在下载之前请先确认OLEDBSDK提供的各项特性。下载文件大约有15M,如果完全安装的话要占用80M的硬盘空间。如果你只对ADO感举趣,就选择最小安装,这样只会占用你15M的硬盘空间。关于ADO的网页在:
  
  http://www.microsoft.com/data/ado/adoinfo.htm.
  
  在这里你可以找到许多关于ADO的示例代码和文章,尤其是在"Workshop"系列的文章中。你也可以从本站下载ADO2.5的帮助文件。
  
  尽管OLEDBSDK提供自己的ADO帮助文件,你会发现ADO1.0的帮助文件更易于使用。同时它还向你提供ADO对象模型的图示
  
  ADO是如何组织起来的?
  以前的对象模型,如DAO和RDO是层次型的。也就是说一个较低的数据对象如Recordset是几个较高层次的对象,如Environment和QueryDef,的子对象。在创建一个QueryDef对象的实例之前,你不能创建DAORecordset对象的实例。但ADO却不同,它定义了一组平面型顶级对象.
  最重要的三个ADO对象是Connection,Recordset和Command.本文将主要介绍Connection和Recordset这两个对象。每个Connection的属性定义了与数据源的连接。Recordset对象接收来自数据源的数据。Recordset可以与Connection一起起使用,先建立一个连接,然后获取数据。尽管如此,Recordset也可以被单独创建,其Connection参数可以在Open属性定义。
  
  如何使用ADO?
  一旦安装了ADO,在VB的工程-引用对话框中你就可以看到象下图所示的东西了:
  
  
  选择"ActiveXDataObjects1.5Library"(ADODB).在其下的"ADORecordset1.5Library"是一个客户端的版本(ADOR),它定义了有聚的数据访问对象。ADOR对于客户端的数据访问来说是足够的了,因为你不需要Connection对象来建立与远程数据源的联系。
  
  如果你想要访问更多的外部数据源,你需要安装这些外部数据源自己的OLEDBProvider,就象你需要为新的数据库系统安装新的ODBC驱动程序一样。如果该外部数据源没有自己的OLEDBProvider,你就得使用OLEDBSDK来自己为这个外部数据源创建一个OLEDBProvider了。这已不是本文讨论的范围了。
  
  示例
  
  下面的示例代码以Northwinds数据库作为远程数据源,然后用ADO来访问它。首先在控制面板中打开“32位数据源”,单击“添加”按钮。在弹出的对话框中选择"MicrosoftAccessDriver(*.mdb)"作为数据源驱动程序。
  
  然后按下图所示,在对话框中填写下面的内容
  
  
  
  选择数据库Northwinds所在路径。单击完成,退出ODBC设备管理器。
  
  启动一个新的VB工程,在窗体的Load事件中输入下面的代码:
  
  PrivateSubForm_Load()
  
  DimcnAsADODB.Connection
  Setcn=NewADODB.Connection
  
  'SetConnectionproperties
  cn.ConnectionString="DSN=RDCNwind;UID=;PWD=;"
  cn.ConnectionTimeout=30
  cn.Open
  
  Ifcn.State=adStateOpenThen_
  MsgBox"ConnectiontoNorthWindSuccessful!"
  
  cn.Close
  
  EndSub
  按F5运行程序,看看,一个消息框弹出来告诉你连接成功了。请注意,这里我特别注明了是ADODB.Connection,而不是ADOR.Connection,这样做是为了将二者区分开(如果你引用了ADODB和ADOR的话,这样做很有必要)。连接字符串看上去同RDO的连接字符串差不多。事实上,二者确实差不多。
  如果我们要访问一个SQLserver数据库,你的Connection代码看上去应象下面所示:
  
  '设置连接属性cn.Provider="MSDASQL"
  cn.ConnectionString="driver={SQLServer};"&"server=prod1;uid=bg;pwd=;database=main"
  cn.Open
  
  "Provider"属性指向SQLServer的OLEDBProvider.
  回到我们的示例程序,让我们创建一个Recordset对象来访问“Orders”表,并从该表的"ShipCountry"字段中产生头十个不重复的国家名。修改窗体Load事件中的代码,让它看上去象下面这样。
  
  PrivateSubForm_Load()
  
  DimcnAsADODB.Connection
  DimrsAsADODB.Recordset
  
  DimsSQLAsString
  DimsOutAsString
  DimCountAsInteger
  
  Setcn=NewADODB.Connection
  Setrs=NewADODB.Recordset
  
  'SetpropertiesoftheConnection.
  cn.ConnectionString="DSN=RDCNwind;UID=;PWD=;"
  cn.ConnectionTimeout=30
  cn.Open
  
  Ifcn.State=adStateOpenThen_
  MsgBox"ConnectiontoNorthWindSuccessful!"
  
  sSQL="SELECTDISTINCTOrders.ShipCountryFROMOrders"
  Setrs=cn.Execute(sSQL)
  
  'Enumeratetherecordset
  sOut=""
  ForCount=1To10
  sOut=sOut&rs("ShipCountry")&vbCrLf
  rs.MoveNext
  NextCount
  
  MsgBoxsOut,vbExclamation,"ADOResults"
  cn.Close
  
  EndSub
  运行程序后,你会看到如下图所示的消息框。
  
  
  不幸的是,目前这个Recrodset对象是只读的和forwardcursor。如果你想要获取更多的功能,你需要创建一个独立的Recordset对象,该对象拥有自己的Connection属性,就象下面的代码所示:
  
  PrivateSubForm_Load()
  
  DimrsAsADODB.Recordset
  
  DimsSQLAsString
  DimsOutAsString
  DimCountAsInteger
  
  Setrs=NewADODB.Recordset
  
  sSQL="SELECTDISTINCTOrders.ShipCountryFROMOrders"
  
  rs.OpensSQL,"DSN=RDCNwind;UID=;PWD=;",adOpenDynamic
  
  'ReportRecordsetConnectioninformation
  MsgBoxrs.ActiveConnection,,"ConnectionInfo"
  
  'Enumeratetherecordset
  sOut=""
  ForCount=1To10
  sOut=sOut&rs("ShipCountry")&vbCrLf
  rs.MoveNext
  NextCount
  
  MsgBoxsOut,vbExclamation,"ADOResults"
  
  rs.Close
  
  EndSub
  上面代码返回的结果同前例一样,但是本代码中的Recordset是独立的。这一点是DAO和RDO做不到的。Recordset对象的Open方法打开一个代表从SQL查询返回的记录的游标。虽然你可以用Connection对象同远程数据源建立连接,但请记住,在这种情况下,Connection对象和Recordset对象是平行的关系。
  总结
  本文仅向你介绍了ADO强大的功能的冰山一角。微软承诺,在将来ADO将会取代DAO和RDO。所以现在你应该考虑如何将你的数据访问代码投向ADO的怀抱。这种转变不会很痛苦,因为ADO的语法同现有的语法差不多。也许微软或第三方会在将来开发出转换向导来简化这一转换过程。从现在起,你就应开发纯ADO代码的程序。你也可以继续使用DAO或RDO代码来开发你的程序,但落伍的感觉总是不好的。->

来源:https://www.tulaoshi.com/n/20160219/1602264.html

延伸阅读
SwitchfromDAOtoADO BySamHuggill Introduction Afewdaysago,IstartedanewprojectthathandlesalargedatabasecontainingHTMLcodeforacompletewebsite.Theprojecthastoallowthewebmastersofthewebsiteviewallupdatesmadetothesite,whentheyweremadeandbywhom.Theycanalsoeditthepagesonthesite,andautomaticallyupload...
标签: ASP
  这个星期,我们将使用可扩充标记语言(XML)以及在ASP中使用ActiveX Data Object(ADO).在最新的互联网信息服务器(IIS 5)和ADO(2.6)版本中,我们现在能够从游标对象中提取数据作为XML直接保存并直接发给ASP的response对象    。 下面的Phonelist.asp工程从创建一个底层的Access数据库开始.我的想法是开发一个对任何公司都有...
标签: ASP
  原码下载地址: http://www.codeproject.com/dotnet/ADONET_datareader/ADONET_datareader.zip Introduction ADO.NET is the .NET enhanced version of ADO that we all know and love. ADO.NET aims to address some of the deficiencies of traditional ADO such as lack of type safety, lack of an object oriented model, and ...
Add data to the database using ADO Tools Used : Visual C# .NET This program shows how to insert data in an access database using ADO and SQL query. I have an Access 2000 database in projectindebug directory. My database name is mcTest.MDB. You can create your own database and copy in your project's debug direc...
标签: ASP
  1. 什幺是光标? 光标,也有人称为游标。概括的讲,它是基于记录的。 过去,关系型数据库没有象现在这样被广泛的应用。那时候,人们大多使用 dBase 这样的小型数据库软件。这类数据库确切的说应为数据文件管理软件。他们是面向记录的。 不过,这种方式也许更符合人们的习惯。比如,我们在电话本中查找号码,在学生档案中查找档案,最...

经验教程

251

收藏

28
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部