ADO简介
2008-02-23 06:55:24来源:互联网 阅读 ()
ActiveX Data Objects (ADO) 是微软最新的数据访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代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是作为OLE DB SDK的一部分提供的。你可以从下面这个网址下载:
http://www.microsoft.com/data/oledb/download.htm
在下载之前请先确认OLE DB SDK提供的各项特性。下载文件大约有15M,如果完全安装的话要占用80M的硬盘空间。如果你只对ADO感举趣,就选择最小安装,这样只会占用你15M的硬盘空间。关于ADO的网页在:
http://www.microsoft.com/data/ado/adoinfo.htm.
在这里你可以找到许多关于ADO的示例代码和文章,尤其是在"Workshop"系列的文章中。你也可以从本站下载ADO2.5的帮助文件。
尽管OLE DB SDK提供自己的ADO帮助文件,你会发现ADO1.0的帮助文件更易于使用。同时它还向你提供ADO对象模型的图示
ADO是如何组织起来的?
以前的对象模型,如DAO和RDO是层次型的。也就是说一个较低的数据对象如Recordset是几个较高层次的对象,如Environment和QueryDef,的子对象。在创建一个QueryDef对象的实例之前,你不能创建DAO Recordset对象的实例。但ADO却不同,它定义了一组平面型顶级对象.
最重要的三个ADO对象是Connection, Recordset和Command. 本文将主要介绍Connection和Recordset这两个对象。每个Connection的属性定义了与数据源的连接。Recordset对象接收来自数据源的数据。Recordset可以与Connection一起起使用,先建立一个连接,然后获取数据。尽管如此,Recordset也可以被单独创建,其Connection参数可以在Open属性定义。
如何使用ADO?
一旦安装了ADO,在VB的工程->引用对话框中你就可以看到象下图所示的东西了:
选择 "ActiveX Data Objects 1.5 Library" (ADODB).在其下的 "ADO Recordset 1.5 Library"是一个客户端的版本(ADOR),它定义了有聚的数据访问对象。ADOR 对于客户端的数据访问来说是足够的了,因为你不需要Connection对象来建立与远程数据源的联系。
如果你想要访问更多的外部数据源,你需要安装这些外部数据源自己的OLE DB Provider,就象你需要为新的数据库系统安装新的ODBC驱动程序一样。如果该外部数据源没有自己的OLE DB Provider,你就得使用OLE DB SDK来自己为这个外部数据源创建一个OLE DB Provider了。这已不是本文讨论的范围了。
示例
下面的示例代码以Northwinds数据库作为远程数据源,然后用ADO来访问它。首先在控制面板中打开“32位数据源”,单击“添加”按钮。在弹出的对话框中选择 "Microsoft Access Driver (*.mdb)" 作为数据源驱动程序。
然后按下图所示,在对话框中填写下面的内容
选择数据库Northwinds所在路径。单击完成,退出ODBC设备管理器。
启动一个新的VB工程,在窗体的Load事件中输入下面的代码:
Private Sub Form_Load()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
'Set Connection properties
cn.ConnectionString = "DSN=RDC Nwind;UID=;PWD=;"
cn.ConnectionTimeout = 30
cn.Open
If cn.State = adStateOpen Then _
MsgBox "Connection to NorthWind Successful!"
cn.Close
End Sub
按F5运行程序,看看,一个消息框弹出来告诉你连接成功了。请注意,这里我特别注明了是ADODB.Connection,而不是ADOR.Connection,这样做是为了将二者区分开(如果你引用了ADODB和ADOR的话,这样做很有必要)。连接字符串看上去同RDO的连接字符串差不多。事实上,二者确实差不多。
如果我们要访问一个SQL Server数据库,你的Connection代码看上去应象下面所示:
'设置连接属性cn.Provider = "MSDASQL"
cn.ConnectionString = "driver={SQL Server};" & "server=prod1;uid=bg;pwd=;database=main"
cn.Open
"Provider"属性指向SQL Server的OLE DB Provider.
回到我们的示例程序,让我们创建一个Recordset对象来访问“Orders”表,并从该表的"ShipCountry"字段中产生头十个不重复的国家名。修改窗体Load事件中的代码,让它看上去象下面这样。
Private Sub Form_Load()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sSQL As String
Dim sOut As String
Dim Count As Integer
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
' Set properties of the Connection.
cn.ConnectionString = "DSN=RDC Nwind;UID=;PWD=;"
cn.ConnectionTimeout = 30
cn.Open
If cn.State = adStateOpen Then _
MsgBox "Connection to NorthWind Successful!"
sSQL = "SELECT DISTINCT Orders.ShipCountry FROM Orders"
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:用VB播放FLASH动画
下一篇:切分字符串
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash