ADO,OLEDB,ODBC,DAO的区别
ODBC与ADO对象
ODBC与ADO对象1.3 ODBC与ADO对象ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。
这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。
1.3.1 ASP访问数据库的几种方式在我们介绍了数据库操作的基础知识后,我们接下来的任务是告诉大家如何用ASP访问数据库,因为一个系统不可能没有数据呀,所以我们就必须让ASP采用一个高效的方法通过Internet或Intranet来访问、操作数据库。
我们知道在传统的HTML页面中,访问数据库一般是通过公用网关接口(CGI)来实现,这种方式不仅开发困难,而且在出现大量并发请求时会显著地降低服务器的运行效率,而采用ASP实现数据库访问可以说能较好地解决这个问题。
在ASP脚本中可以通过三种方式访问数据库:● IDC(Internet Database Connector)方式● ADO(ActiveX Data Objects)方式● RDS(Remote Data Service)方式从概念上来讲,这三种访问方式对数据库的访问是由Internet Information Server来完成的。
Web浏览器用HTTP协议向Internet信息服务器(IIS)递交请求。
Internet 信息服务器执行访问数据库的操作,并以一个HTML格式的文档作为回答。
1.Internet数据库接口(IDC)IDC是一个传统的数据库查询工具,用来定义和执行数据库查询的SQL命令,并向浏览器返回一个指定数据格式的页面。
使用IDC访问数据库最大的特点是简单,几乎不需要编程就能实现对数据库的访问。
2.ActiveX数据对象(ADO)与IDC不同,用ADO访问数据库更类似于编写数据库应用程序,ADO把绝大部分的数据库操作封装在七个对象中,在ASP页面中编程调用这些对象执行相应的数据库操作。
VC数据库编程之ADO和ODBC比较
如果对数据库的底层访问很看重,则用ODBC,如果只是需要一个数据库的接口,而具体细节不是很重要的话,则用ADO。
大多数情况下,使用ADO。
ODBC:直接使用ODBC API编写应用程序需要编制大量代码,Visual C++提供了MFC ODBC类,其中封装了ODBC API,因此,使用MFC来创建ODBC的应用程序非常简便。
主要的MFC ODBC 类如下所示。
CDatabase类:一个CDatabase对象表示一个到数据源的连接,通过它可以操作数据源。
应用程序可使用多个CDatabase对象,构造一个对象并调用OpenEx()成员函数打开一个连接。
接着构造CRecordSet对象以操作连接的数据源,并向CDatabase对象传递记录集构造程序指针。
完成后用Close()成员函数销毁CDatabase对象。
一般情况下并不需要直接使用CDatabase对象,因为CRecordSet对象可以实现大多数的功能。
但是在进行事务处理时,CDatabase就起到关键作用。
事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个也不提交,为的是确保多用户对数据源同时操作时的数据正确性。
CRecordSet类:一个CRecordSet对象代表一个从数据源选择的一组记录的集合——记录集。
记录集有两种形式,snapshot和dynaset,前者表示数据的静态试图,后者表示记录集和其他用户对数据库的更新保持同步。
通过CRecordSet对象,用户可以对数据库中的记录进行各种操作。
CRecordView类:CRecordView对象是在空间中显示数据库记录的视图。
这种视图是一种直接连到CRecordSet对象的格式视图,它从一个对话框模板资源创建,并将CRecordSet 对象的字段显示在对话框模板的控件中。
对象利用DDX和RFX机制,使格式上的控件和记录集的字段之间数据移动自动化,也就是说,用户不用编写一行代码就可以实现简单的数据库记录查看操作。
浅析VB中的三种数据访问技术
浅析VB中的三种数据访问技术DAO、RDO和ADO分别代表了数据访问技术的不同发展阶段,本文对VB 中最常用的三种数据访问接口的体系结构进行了介绍,最后对这三种接口的技术进行了集中总结和比较。
标签:DAO RDO ADO 数据访问0 引言数据库实质上是一个庞大的、不同类型的数据集合。
早期的数据库系统不提供对外接口,仅可有特定软件访问数据,随着计算机技术的发展和应用水平的提高,数据库系统逐渐发展、完善对外接口,成为标准的应用支持平台。
程序员再也不必自己编写数据管理程序,只需使用标准接口连接数据库即可获得数据库系统的全部功能。
而访问数据库是现代应用程序必备的基本功能之一,无论是数据库管理系统,还是多媒体应用系统,都需要强大的数据库支持。
VB为程序员提供了多种访问数据库的手段,包括数据控件、DAO、RDO及ADO等。
本文简单介绍DAO、RAO、ADO的体系结构,并对三者进行简单总结和比较。
1 DAO1.1 DAO概念数据访问对象DAO(Data Access Objects)出自VB6.0提供的一个对象库,为处理数据提供了完整、灵活的支持。
DAO模型是设计关系数据库系统结构的对象类的集合。
它们提供了管理关系型数据库系统所需的全部操作的属性和方法,其中包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等。
在程序中使用它可以访问Access、FoxPro、dBase等数据库,某些条件下也可以访问ODBC数据库。
1.2 DAO层次结构DAO模型的体系结构如图1所示。
DAO的结构严谨而丰富,正是这样的结构,提供了足够丰富的访问数据库的方法。
DAO是完全的面向对象的,它将数据的值作为属性,数据的查询作为方法,数据值的变化作为事件。
1.3 使用DAO 使用DAO的步骤为:①创建工作区;②打开数据库;③创建记录集;④使用记录集访问数据库;⑤关闭DAO。
2 RDO2.1 RDO概念远程数据对象RDO(Remote Data Objects)是位于ODBC API 和驱动程序管理器之上的对象模型,它提供一系列的对象来满足远程数据访问的特殊要求。
ADO,OLEDB,ODBC,DAO的区别
ODBC(Open Database Connectivity,开放数据库互连)1992年,微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
---出现的最早,但不总是万能。
DAO(Data Access Object,数据访问对象)1993年,微软公司用来显露了Microsoft Jet数据库引擎(最早是给Microsoft Access 所使用,现在已经支持其它数据库),并允许开发者通过ODBC直接连接到其他数据库一样,直接连接到Access 表。
DAO 最适用于单系统应用程序或在小范围本地分布使用。
其内部已经对Jet数据库的访问进行了加速优化,而且其使用起来也是很方便的。
所以如果数据库是Access 数据库且是本地使用的话,建议使用这种访问方式---应用的专一性RDO(Remote Data Objects,远程数据对象)1995年,RDO是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。
尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。
但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。
RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。
---无疑是在odbc基础上的OLE DB(Object Linking and Embedding, Database,对象连接嵌入数据库)1997年,Microsoft 的一个战略性系统级编程接口,用于管理整个组织内的数据。
四大主流数据库
目前主流的四大数据库为:access, SQL SERVER, ORACLE微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。
它提供了编程语言和统一数据访问方式OLE DB的一个中间层。
允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。
访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。
ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。
ADO 在1996年冬被发布。
ADO包含一些顶层的对象:连接,代表到数据库的连接记录集,代表数据库记录的一个集合命令,代表一个SQL命令记录,代表数据的一个集合流,代表数据的顺序集合错误,代表数据库访问中产生的意外字段,代表一个数据库字段参数,代表一个SQL参数属性,保存对象的信息ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。
在新的编程框架.NET Framework中, 微软也提供了一个面向Internet的版本的ADO,称为。
其对象模型和传统ADO差别很大。
ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。
为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。
开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。
ADO的一项属性远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。
数据库接口技术
数据库接口技术数据库接口技术是指开发人员通过一定的编程技术和工具,以便于操作和维护数据库的方式,将数据处理应用程序与数据库系统连接起来的一种手段。
通俗的讲,即使开发人员不会直接去操作数据库,只要学会了数据库接口技术,就可以在程序中调用相关接口来实现数据的增删改查等基本操作。
目前常见的数据库接口技术主要有以下几种:1. JDBCJDBC是Java Database Connectivity的缩写,是一种Java数据库接口技术。
它为Java语言中的平台无关数据库访问提供了标准接口。
JDBC提供了一组API,使得开发人员可以通过Java程序来访问和操作各种关系型数据库。
2. ODBCODBC是Open Database Connectivity的缩写,是一种跨平台的数据库接口技术。
它提供了一个标准的API,使得应用程序可以访问多种数据库系统。
ODBC 支持多种编程语言,并且可以在不同的操作系统上使用,包括Windows、Linux 和Unix等。
3. 是一种.NET框架下的数据库接口技术。
它提供了一组API,使得.NET 语言中的程序员可以通过代码来连接各种数据库,并且进行数据的操作。
主要用于访问关系型和结构化数据。
4. ORM框架ORM全称Object-Relational Mapping,是一种将对象模型和关系数据库之间的映射技术。
ORM框架可以帮助开发人员将数据访问层、业务逻辑层和表示层等不同的代码层次进行分离,从而大大提高了程序的可维护性和扩展性。
常见的ORM框架有Hibernate、MyBatis等。
总之,数据库接口技术是数据处理应用程序与数据库系统连接的重要方式。
掌握数据库接口技术可以帮助开发人员快速、方便地进行数据操作,从而提高开发效率和应用程序的质量。
vb ado
在VB中常用的数据库访问接口有三种,即DAO、RDO、ADO 三种对象模式。
三种模式的具体解释见上篇文章:DAO/RDO/ADO,ODBC,OLEDB之间的关系本篇文章我们重点介绍一下ADO的应用。
一:ADO的简介ADO(ActiveX Data Object)是由微软公司开发的最新的数据库访问接口技术,因为ADO技术对OLEDB(Object Link and Embedding DataBase)进行了封装并实现了OLEDB所有的功能,所以ADO通过OLEDB可以访问任何类型的数据源,并且减少了编程量。
ADO访问数据库的体系可以概括为:二:基本流程:ADO访问数据库的目标是访问、编辑和更新数据源,因此使用ADO进行数据访问时,一般需要经过一下步骤:(1)创建一个数据源的连接,连接数据库。
Set objCn = NewConnectionstrcn ="provider=microsoft.jet.oledb.4.0;persist security info=false;" &_"data source=" &App.Path & "\实例1.mdb" objCn.ConnectionString = strcnobjCn.Open(2)设置一个命令来访问数据源的数据。
(3)执行命令。
Set objCmd = New CommandSet objCmd.ActiveConnection = objCnWith objCmd.CommandText = "select * from 系统用户where 用户名 like ?" & "and 身份 like ?".CommandType = adCmdTextEnd WithDim Parm As New ParameterSet Parm =objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)objCmd.Parameters.Append ParmSet Parm =objCmd.CreateParameter("身份", adVarChar, adParamInput, 10)objCmd.Parameters.Append Parm(4)如果命令的执行导致返回数据库中表的某些行,则将他们保存在缓存中,产生相应的数据集对象,以便对其进行操作。
VB与数据库连接的几种方法
VB与数据库连接的几种方法在VB中,与数据库进行连接的方式有多种,可以根据不同的需求选择不同的方法。
下面将介绍几种常用的连接数据库的方法。
1.使用ADO连接数据库:ADO(ActiveX Data Objects)是一种用于连接数据库的COM组件,它提供了一套广泛的API,用于与各种数据库进行交互。
使用ADO连接数据库的基本步骤如下:(1)引入ADO组件:在VB的项目中,需要通过引入ADO组件来使用ADO的功能。
在“项目”菜单中选择“引用”,然后勾选“微软ActiveX数据对象库”即可。
(2)创建连接对象和命令对象:使用ADO连接到数据库需要创建两个核心对象,即连接对象和命令对象。
连接对象用于建立与数据库的连接,命令对象用于执行SQL语句。
(3)打开数据库连接:使用连接对象的Open方法来打开数据库连接。
(4)执行SQL语句:使用命令对象的Execute方法执行SQL语句,可以执行查询、插入、更新、删除等操作。
(5)关闭数据库连接:使用连接对象的Close方法关闭数据库连接。
2.使用ODBC连接数据库:ODBC(Open Database Connectivity)是一种通用的数据库访问接口,可以连接各种类型的数据库,包括Access、SQL Server、MySQL等。
VB提供了对ODBC的支持,可以使用ODBC连接数据库。
(1)设置ODBC数据源:在Windows的“控制面板”中选择“管理工具”->“ODBC数据源”,配置一个ODBC数据源,指定要连接的数据库。
(2)在VB中连接数据库:在VB中使用ODBC连接数据库需要通过ODBC数据源名来建立连接。
例如:```Dim conn As New ADODB.Connectionconn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\myDB.mdb;Uid=Admin;Pwd=; "conn.Open```(3)执行SQL语句:通过ADO连接对象执行SQL语句,与使用ADO 连接数据库的方式相同。
ODBC和ADO区别
统中必须有DBMS,但不需要驱动程序,不需要注册数据源,所以具有很好的可移植性。
VC++6中这两种技术所涉及到的MFC类:
MFC ODBC类包括CDatabase类 CRecordSet类 CRecoreView类 CFieldExchange类 CDBException类,具体说明请详见任何一本讲述数据库编程技术的参考书。
这么说吧,我们操作ADO,ADO则访问OLEDB(当然可以访问其他的,只要符合ADO接口),OLEDB查询ODBC(也可以不用找他)得到数据接口操作数据.
ODBC?ADO?OLEDB三者区别?
起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢,?
ole?db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com组件,更快,更高效。?
注 ODBC 和ADO 具有相似的特征,如记录集和数据库对象,尽管MFC 利用这些对象的方式完全不同。
============================================================================
有一个地方绝对不能使用ADO。如果要访问16 位数据,就不能用ADO。不管你怎么想,都必须用ODBC。然而,几乎没有人还在使用16 位数据库了。大多数的新工程都会使用32 位接口,这意味着会有一个选择。老的工程已经有了嵌入代码的数据访问方法,所以你也实在没有必要在这里做决定。ODBC 的一点不足是,不能像以前使用ADO 那样跟踪事务。以Microsoft Jet引擎使用ADO 时,应该得到事务的工作区级的支持。ODBC 只提供数据库级的事务支持,这就是说,可以从几个不同的工作区跟踪事务(这使得调试非常困难,还可能导致其它类型的问题)。
JDBC与ODBC的区别
JDBC与ODBC的区别⼀、ODBC(Open DataBase Connectivity : 开放数据库连接)ODBC 总体结构应⽤程序执⾏处理并调⽤odbc函数,提交sql语句并检索结果Driver Manager管理应⽤程序和驱动程序之间的通讯,根据应⽤程序加载并卸载驱动程序,处理odbc函数调⽤,获把它们传送到驱动程序驱动程序处理odbc函数调⽤,把sql语句提交到数据源,并返回结果到应⽤程序,如有必要,驱动程序修改⼀个应⽤程序请求,以使请求与相关的DBMS⽀持的语法⼀致数据源⽤户要访问的DBMS,以及相关osApplication||Driver Manager| | || | |驱动程序驱动程序驱动程序| | |数据源数据源数据源结合现实的⾼层开发⼯作流程如下:1.数据应⽤系统⾸先获得在ODBC数据源管理器中建⽴的DSN(存储了与数据提供程序连接的详细信息包含数据库位置、数据库类型及相应的ODBC驱动程序等),然后 Driver Manager依赖⼀种叫做数据库独⽴的交流(Database Indepedent Communications Technology)的技术与数据源建⽴联系(其中涉及客户端和服务器端多种Agent对象的问题,详情不叙,可参见下图).2.Driver Mangaer调⽤特定ODBC驱动程序将ODBC标准API转化为适⽤于具体数据库系统的函数调⽤(数据库特征不同之处也在这⾥翻译如SQL语法差异等),然后经由客户端的Request Agent发送到数据源.3.数据源Database Agent处理操作,将结果返回到客户端的Request Agent,再向上经Driver(这⾥会有翻译和标准化错误码的⾏为)、Driver Mangaer返回给Application.需要说明的是定义和操作光标、维护事务、负责任何与访问数据源的必要软件层进⾏交互(包括与底层⽹络或⽂件系统接⼝的软件)等⾏为亦由驱动程序完成.结合ODBC API调⽤顺序描叙⼯作流程:初始化(分配环境--->分配连接句柄--->与服务器连接--->分配语句句柄)-------->SQL处理(语句处理和检索部分)-------->终⽌(释放语句句柄--->与服务器断开--->释放连接句柄--->释放环境).⼆、JDBC(Java DataBase Connectivity : Java数据库连接)JDBC设计很多借鉴于ODBC:1.JDBC与ODBC都是基于X/Open的SQL调⽤级接⼝2.JDBC很多设计思想沿袭了ODBC,包括许多抽象和SQL CLI实现3.JDBC的总体结构类似于ODBC,有四个组件:应⽤程序、驱动程序管理器、驱动程序和数据源,⼯作原理亦⼤体同于ODBC.1.JDBC保持了ODBC的基本特性,也独⽴于特定数据库.2.使⽤相同源代码的应⽤程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS.连接不同的 DBMS时,各个DBMS之间仅通过不同的URL进⾏标识.3.JDBC的DatabaseMetaData接⼝提供了⼀系列⽅法,可以检查DBMS对特定特性的⽀持,并相应确定有什么特性,从⽽能对特定数据库的特性予以⽀持4.JDBC也⽀持在应⽤程序中同时建⽴多个数据库连接,采⽤JDBC可以很容易地⽤SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础Java的驱动解决⽅案有四种:1.JDBC-ODBC Bridge 2.本机API/集团式Java驱动程序 3.⽹络协议/全Java 4.本机协议/全Java。
第十一章-ADO和DAO
DAO和ADO的区别
• 在MDB数据库中,可以使用ADO或 DAO;而在ADP项目数据库中,则只 能使用ADO。 • 在MDB数据库中,如果同时引用了 ADO或DAO,那么在声明对象变量时 必须明确指明。
Properties Properties Property
Property
Recordset Stream Fields
Field
Properties
Property
ADO提供了九个对 象和四个集合。
ADO
4、数据库提供程序
• Access 2003提供了一个本地OLE DB用户和 编程接口,使用该接口可以访问 Access数据 库、SQL Server数据库以及其他数据源。 • 在OLE DB结构中,访问数据的应用程序被称 为数据消费程序(例如,Microsoft Access), 能在本地访问数据的程序被称为数据库提供 程序(例如,Microsoft OLE DB Provider for SQL Server 或 Microsoft Jet 4.0 OLE DB Provider)。
DAO
2、引用DAO 3.6 在使用DAO之前,必须引Байду номын сангаас包含DAO 对象和函数的库。 方法是:在VBE环境中,单击菜单 【工具】中的【引用】按钮,在 “引用”对话框中,包含了很多类 型的链接库,选择:Microsoft DAO 3.6 Object Library。
DAO
3、DAO的对象模型
DAO是Access的一个对象,DAO 本身也有自己的对象结构,对象分 层结构如图:
ADO
4、数据库提供程序
• ADO就是通过数据库提供程序对数据源 的数据进行处理。 • 使用ADO编程的第一步,就是建立应用 程序和数据源之间的连接。
ODBC ADO OLEDB三者区别
ODBC ADO OLEDB三者区别起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢, ole db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com 组件,更快,更高效。
odbc,oledb,ado,adox的关系:odbc: 曾经的数据库通信标准oledb: 在一切对象化的趋势下,ms打算用它取代odbc, oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这样没有自己的oledb提供者的数据库也可以使用o ledb的特点了。
ado: 其实只是一个应用程序层次的界面,它用oledb来与数据库通信。
adox: 对ado的安全性,维护性(如:创建一个数据库)进行了扩展。
1.用odbc连接数据库:odbc中提供三种dsn,它们的区别很简单:用户dsn只能用于本用户。
系统dsn和文件dsn 的区别只在于连接信息的存放位置不同:系统dsn存放在odbc储存区里,而文件dsn则放在一个文本文件中。
它们的创建方法就不说了。
在asp中使用它们时,写法如下:A.sql server:用系统dsn: connstr="DSN=dsnname; UID=xx; PWD=xxx;DATABASE=dbname"用文件dsn: connstr="FILEDSN=xx; UID=xx; PWD=xxx;DATABASE=dbname"还可以用连接字符串(从而不用再建立dsn):connstr="DRIVER={SQL SERVER};SERVER=servername;UID=xx;PWD=xxx"B.access:用系统dsn: connstr="DSN=dsnname"(或者为:connstr="DSN=dsnname;UID=xx;PWD=xxx")用文件dsn: connstr="FILEDSN=xx"还可以用连接字符串(从而不用再建立dsn):connstr="DRIVER={Microsoft Access Driver};DBQ=d:\abc\abc.mdb"2,用oledb连接数据库:A.sql server:connstr="PROVIDER=SQLOLEDB;DATA SOURCE=servername;UID=xx;PWD=xxx;DATABASE=dbname"B.access:connstr="PROVICER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=c:\abc\abc.mdb"3.使用UDL文件:UDL文件是用来存放数据库连接信息的一个文本文件,有点象文件DSN,不过UDL是针对OL EDB(直接的和面向ODBC的)的。
ODBC和ADO
MFC 中的 ODBC 类和 ADO 类1、MFC 的 ODBC 类:MFC 的 ODBC 类对较复杂的 ODBC API 进行了封装,提供了简化的调用接口,从而大大方便了数据库应用程序的开发。
程序员不必了解 ODBC API 和 SQL 的具体细节,利用 ODBC 类就能完成对数据库的大部分操作。
1、MFC 的 ODBC 类主要包括:1.1、CDatabase 类:主要是建立与数据源的连接。
为了使用 CDatabase 类,必须包含以下头文件: #include <afxdb.h>1.1.1、数据成员:HDBC M_hdbc ; // 是对数据源的开放数据库连接 (ODBC) 的连接句柄,用来表示某次 ODBC 数据源的连接。
1.1.2、成员函数:1.1.2.1、CDatabase() :构造函数构造一个 CDatabase 对象,必须通过调用 OpenEx 和 Open 初始化这个对象。
1.1.2.2、Open() 函数:函数原型: virtual BOOL Open(LPCSTR lpszDSN,BOOL bExclusive=FALSE,BOOL bReadOnly=FALSE,LPCSTR lpszConnect=”ODBC;”,BOOL bUseCursorLib=TRUE);throw(CDBException,CmemoryException);如果成功形成连接,则返回非 0 值。
功能:打开新构造的 CDatabase 对象,并将它初始化。
1.1.2.3、OpenEx() 函数:函数原型: virtual BOOL OpenEx(LPCSTR lpszConnectString,DWORD dwOption=0);throw(CDBException,CmemoryExption);功能:建立到数据源的一个连接(通过 ODBC 驱动程序),打开一个新构造的 CDatabase 对象,并将它初始化。
用ASP连接数据库的几种方法
用ASP连接数据库的几种方法用ASP连接DBF、DBC、MDB、Excel、SQL Server型数据库的方法:一、ASP的对象存取数据库方法在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、CommandConnection:负责打开或连接数据Recordset:负责存取数据表Command:负责对数据库执行行动查询命令二、连接各数据库的驱动程序连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。
驱动程序适用数据库类型Microsoft.Jet.OLEDB.4.0 MdbMicrosoft Access Driver AccessMicrosoft dBase Driver DbaseMicrosoft Excel Driver ExcelMicrosoft Visual FoxPro Driver DbcSQLOLEDB.1 SQL srver7.0而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:dim connset conn = server.createobject("adodb.connection")conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " &server.mappath("../db/bbs.mdb")其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:dim connset conn = server.createobject("adodb.connection")conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.map path("bbs.mdb")有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了ASP连接数据库的5种方法第一种 - 这种方法用在ACCESS中最多strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _& Server.MapPath("aspfree.mdb")set conn = server.createobject("adodb.connection")conn.open strconn第二种-这种方法用在SQL SERVER中多strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1;" _ &"UID=LoginID;Password=;DATABASE=Database_Name"set conn = server.createobject("adodb.connection")conn.open strconn第三种strconn="Driver={Microsoft Access Driver(*.mdb)};" _&"DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=" _&"f:\Inetpub\wwwroot\somedir;uid=LoginID;" _&"pwd=Password;DriverId=25;FIL=MSAccess;"set conn = server.createobject("adodb.connection")conn.open strconn第四种运用系统数据源The following uses a Data Source Name: Exampleset conn = server.createobject("adodb.connection")conn.open "Example"第五种运用ODBC数据源,前提是你必须在控制面板的ODBC中设置数据源set rs = server.createobject("adodb.recordset")rs.open "tblname", "DSNName", 3, 3 第一种 - 这种方法用在ACCESS中最多strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _& Server.MapPath("aspfree.mdb")set conn = server.createobject("adodb.connection")conn.open strconnASP访问数据库的方式有哪些?在ASP中可以通过三种方式访问数据库:1、IDC(Internet Database Connector)方式;2、ADO(ActiveX Data Objects)方式;3、RDS(Remote Data Service)方式。
ADO和DAO
ADO 是用接口来实现的,呵呵,这算是一条吧。
Top2 楼Jneu(沧海桑田)回复于2001-11-15 13:53:11 得分50ADO 和RDO、DAO 的比较ADO 并不是自动和您现存的数据访问应用程序代码兼容的。
当 ADO 封装DAO 和RDO 的功能性的时候,您必须将许多语言要素转换为 ADO 语法。
在某些情况下,这将意味着您现存代码的某些功能的一个简单转换。
在其他情况下,最佳的做法可能是用ADO 的新功能重写该应用程序。
DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它显露了Microsoft Jet 数据库引擎(由Microsoft Access 所使用),并允许 Visual Basic 开发者通过ODBC 象直接连接到其他数据库一样,直接连接到Access 表。
DAO 最适用于单系统应用程序或小范围本地分布使用。
RDO (Remote Data Objects) 远程数据对象是一个到ODBC 的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。
尽管RDO 在很好地访问Jet 或ISAM 数据库方面受到限制,而且它只能通过现存的ODBC 驱动程序来访问关系数据库。
但是,RDO 已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。
RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。
ADO 是DAO/RDO 的后继产物。
ADO 2.0在功能上与RDO 更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。
ADO “扩展”了DAO 和RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。
例如,ADO 没有与rdoEngine 和rdoEnvironment 对象相等同的对象,可以显露ODBC 驱动程序管理器和hEnv 接口。
一致的数据访问技术ADO和OLEDB
一致的数据访问技术ADO/OLE DBMicrosoft新近推出的UDA(Universal Data Access,一致数据访问技术)为关系型或非关系型数据访问提供了一致的访问接口,为企业级Intranet应用多层软件结构提供了数据接口标准。
一致数据访问包括两层软件接口,分别为ADO(Active Data Object)和OLE DB,对应于不同层次的应用开发,ADO提供了高层软件接口,可在各种脚本语言(Script)或一些宏语言中直接使用;OLE DB提供了底层软件接口,可在C/C++语言中直接使用。
ADO以OLE DB为基础,它对OLE DB 进行了封装。
一致数据访问技术建立在Microsoft的COM(组件对象模型)基础上,它包括一组COM 组件程序,组件与组件之间或者组件与客户程序之间通过标准的COM接口进行通讯。
由于ADO建立在自动化(Automation)基础上,所以ADO的应用场合非常广泛,不仅可在Visual Basic这样的高级语言开发环境中使用,还可以在一些脚本语言中使用,这对于开发Web应用,在ASP(Active Server Page)的脚本代码访问数据库中提供了操作应用的捷径。
本文将首先介绍ADO和OLE DB的结构模型,以便读者了解ADO与OLE DB之间的关系,然后介绍ADO的对象模型和ADO的一些特性,同时我们也将通过一些例子代码向读者展示ADO的用法。
一、一致数据访问介绍随着网络技术和数据库技术的不断发展,现在的应用系统对数据集成的要求越来越高,这些数据有可能分布在不同的地方,并且使用不同的格式,例如关系型数据库和操作系统中的文件、电子表格、电子邮件、多媒体数据以及目录服务信息等等。
传统的解决方案是使用大型的数据库系统,把所有这些数据都移到数据库系统中,然后按照操作数据库的办法对这些数据进行访问,这样做虽然能够按统一的方式对数据进行各种操作,但这种间接访问方式带来了很多问题,比如数据更新不及时、空间资源的冗余和访问效率低等等。
VB中的数据库编程_Vb的ADO和DAO
6.5 ADO数据控件
4. 使用数据窗体向导 窗体向导是为自动生成 VB 窗体而设计的 , 所生成的窗体 包含有各个被绑定的控件和过程 ,只能和ADO控件一起使 用.是显示数据库内容的一种方法. 数据窗体向导属于外接程序。在Visual Basic 6.0集成 开发环境的横向菜单中点击"外接程序",再点击子菜单 的"外接程序管理器",从打开的"外接程序管理器"窗口 选择 "VB 6 数据窗体向导 " 命令,将数据窗体装入到 " 外接程序"中。 例6.7 使用数据窗体向导建立Student.mdb数据库的数 据访问对话框。
6.5
ADO数据控件
1. ADO对象模型 ADO(ActiveX Data Object)活动数据访问接口是 Microsoft处理数据库信息的最新技术。采用OLE DB 的数据访问模式,是数据访问对象DAO、远程数据对 象RDO和开放数据库互连ODBC三种方式的扩展。 ADO对象模型定义了一个可编程的分层对象集合,主 要由三个对象成员Connection、Command和 Recordset对象,以及几个集合对象Errors、 Parameters和Fields等所组成。 6.5 ADO数据控件
"Microsoft Jet 3.51 OLE DB Provider"
选项。
单击"下—步"按钮
6.5 ADO数据控件
步骤3:采用"使用连接字符串"方式连接数据源。
在"连接"选项内, 指定数据库文件, Student.mdb
为保证连接有效,可单 击"连接"选项卡右下方 的"测试连接"按钮,如 果测试成功则关闭数据 链接属性页
ODBC与DAO对象
按照打开记录集的方式,下面列出了可用的类型和缺省的类型
使用 TableDef 对象的 OpenRecordset 方法: Set rstNew = tdfTableData.OpenRecordset 如果 tdfTableData 指的是 Microsoft Jet 数据库 (.mdb) 中的表,或者直接打开的 ISAM 数据库, 那么所有的五种类型都是可用的,表类型的记录 集为缺省的类型。如果 tdfTableData 在 ODBC 数 据库中,或者是外部数据库中的链接表,那么只 能用动态集和快照类型的 Recordset 对象,动态 集类型为缺省类型。
了解DAO数据库类
1. CDaoTableDef类 3. CDaoRecordset类 2. CDaoDatabase类 CDaoRecordset类是对DAO记录集对象的封装,它代 CDaoTableDef对象表示数据库中的基本表或附加表 CDaoDatabase类是对DAO数据库对象的封装,它代 表从数据源中选择的一组记录。通过CDaoRecordset类 的存储定义。每个DAO数据库对象中都包含一个 表一个数据库连接,利用它可以操纵数据库中的数据。 可以对DAO记录集对象进行如下操作: TableDef收集,它由所有存储的DAO表定义对象组成。 在一个由CDaoWorkspace对象指定的工作区中,可以同 ① 在记录集中滚动;② 对表型记录集设臵索引并 时拥有多个活动的CDaoDatabase对象,每个对象都有自 类中的构建函数包括Append、CDaoTableDef、Close、 使用Seek快速查找记录;③ 对动态集型和快照型记录 己的表定义、查询定义、记录集和关系的收集,同时 Create和Open,它可以完成构造CDaoTableDef对象和新 可以进行基于字符串 "/"、"<=","=",">="和">"比较 CDaoDatabase类也提供操纵这些对象的成员函数。 建CDaoTableDef对象等操作。 的记录查找;④ 更新记录并指定锁定模式;⑤ 对数据 类中的数据库属性函数,完成查询数据库版本、更新 类中表定义属性函数包括CanUpdate、GetConnect、 集过滤;⑥ 对记录集排序;⑦ 参数化记录集。 特性和设臵查询超时等操作。类中的数据库操作函数完 GetSourceTableName等可以完成查询表的字段数目和索 成打开或创建数据库,创建关系和执行查询等操作。 引信息等操作。
第19章通向数据库的桥梁-ODBC、ADO和OLEDB
• ODBC数据库链接:读者可以学到在Visual C++6.0中使用 ODBC进行数据库链接。
• ADO数据库链接:读者可以学到在Visual C++6.0中使用ADO 进行数据库链接。
• OLE DB数据连接:读者可以学到OLE DB的相关理论知识。
19.4 ADO数据库操作
• 使用数据库中间层(如ODBC或ADO)实际上就相当
于在应用程序和数据库之间架设了一道桥梁。当
然,架设桥梁只是手段,保证应用程序和数据库
的交通顺畅才是目的,在ADO中实现对数据库进行
操作,开发者只需要做一些额外工作即可,如为
取得数据库记录集,应该先定义一个指向
Recordset对象的指针:
• 数据:文字、图片、音频和视频等具有信息意义的符号或 记录。
• 数据库:也称为数据仓库,是存放数据的物理的或逻辑的 设备介质。
• 数据库管理系统(DBMS):管理数据库的专用管理软件。 • 数据库管理员(DBA):具有管理数据库权限的人,而DBA
是分多个层次的,不同的DBA可能还具有从属关系。
19.1.2 关系代数与数据库SQL语言简介
• 使用合计函数可以对一组数据进行各种不同的统计,它返回用于一组记录的单一值。
19.1.4 使用SQL查询语言运行器
• 每个数据库管理系统都有自己的SQL查询语言运行 器,如Access数据库,可以按照如下操作进行SQL 查询语句的使用。
19.1.5 使用SQL查询技巧:投影和选择
• 使用SQL语句可以编写形式丰富的二维表查询语句,以下是 SQL语句常用的一些范例:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADO,OLEDB,ODBC,DAO的区别2012-07-19 15:29 101人阅读评论(0) 收藏举报dao数据库sql servermicrosoftaccess数据库驱动程序ODBC(Open Database Connectivity,开放数据库互连)1992年,微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,幵提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL 语言的支持,用户可以直接将SQL语句送给ODBC。
---出现的最早,但不总是万能。
DAO(Data Access Object,数据访问对象)1993年,微软公司用来显露了Microsoft Jet数据库引擎(最早是给Microsoft Access 所使用,现在已经支持其它数据库),幵允许开发者通过ODBC直接连接到其他数据库一样,直接连接到Access 表。
DAO 最适用于单系统应用程序或在小范围本地分布使用。
其内部已经对Jet数据库的访问迚行了加速优化,而且其使用起来也是很方便的。
所以如果数据库是Access数据库且是本地使用的话,建议使用这种访问方式---应用的专一性RDO(Remote Data Objects,进程数据对象)1995年,RDO是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style 组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。
尽管RDO 在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。
但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。
RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。
---无疑是在odbc基础上的OLE DB(Object Linking and Embedding, Database,对象连接嵌入数据库)1997年,Microsoft 的一个战略性系统级编程接口,用于管理整个组织内的数据。
OLE DB 是建立在ODBC 功能乊上的一个开放规范。
ODBC 是为访问关系型数据库而专门开发的,OLE DB 则用于访问关系型和非关系型信息源,例如主机ISAM/VSAM 和层次数据库,电子邮件和文件系统存储,文本、图形和地理数据以及自定义业务对象。
OLE DB 定义了一组COM 接口,对各种数据库管理系统服务迚行封装,幵允许创建软件组件,实现这些服务。
OLE DB 组件包括数据提供程序(包含和表现数据)、数据使用者(使用数据)和服务组件(处理和传送数据,例如,查询处理器和游标引擎)。
OLE DB 接口有助于平滑地集成组件,这样,OLE DB 组件厂商就可以快速地向市场提供高质量OLE DB 组件。
此外,OLE DB 包含了一个连接ODBC 的“桥梁”,对现用的各种ODBC 关系型数据库驱动程序提供一贯的支持。
---号称取代odbc,但也兼容odbcADO(ActiveX Data Object,活动数据对象)1996年,ADO是DAO/RDO的后继产物。
ADO 2.0在功能上与RDO更相似,而且一般来说,在这两种模型乊间有一种相似的映射关系。
ADO"扩展"了DAO和RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。
作为最新的数据库访问模式,ADO的使用也是简单易用,所以微软已经明确表示今后把重点放在ADO上,对DAO/RDO不再作升级,所以ADO已经成为了当前数据库开发的主流。
ADO涉及的数据存储有DSN(数据源名称)、ODBC(开放式数据连接)以及OLE DB三种方式。
后面的例程将详细讲解这三种方式的具体访问实现。
---可以说是对odbc,oledb 这些系统级的编程接口的汇接,幵对DAO,RDO这些应用级的编程接口的升级吧。
ODBC 、DAO 、ADO 、OLEDB 数据库连接方式区别及联系ODBC是一种底层的访问技术,因此,ODBC API 可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能;但不足乊处由于ODBC只能用于关系型数据库,使得利用ODBC很难访问对象数据库及其他非关系数据库。
DAO提供了一种通过程序代码创建和操纵数据库的机制。
最大特点是对MICROSOFT JET数据库的操作很方便,而且是操作JET数据库时性能最好的技术接口乊一。
幵且它幵不只能用于访问这种数据库,事实上,通过DAO技术可以访问从文本文件到大型后台数据库等多种数据格式。
ADO是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLE DB的优点。
属于数据库访问的高层接口。
名词解释:ODBC(Open DataBase Connectivity)开放数据库互联。
是由微软主导的数据库链接标准。
MFC(Microsoft Foundation Class)微软基础类。
MFC ODBC是对ODBC的封装。
DAO(Data Access Object)数据访问对象。
不提供进程访问功能。
RDO(Remote Data Object)进程数据对象。
速度快,支持SQL Server存储过程,同DAO一样是发展很多年了的技术。
OLE-DB(Object Linking and Embedding DataBase)对象链接和嵌入数据库。
它依赖于COM和提供OLE DB提供者的厂商而非ODBC使用的SQL。
ADO(ActiveX Data Object)ActiveX数据对象。
基于OLE-DB建立连接的局部和进程数据库访问技术。
同OLE-DB一样要“年轻”些。
使用中,我们一般用OLE-DB和ADO替代DAO和RDO。
ADO和OLEDB乊间的关系OLEDB是一种底层数据访问界面接口。
是用于第三方驱动程序商家开发输出数据源到ADO-技术的应用程序或用于C++的开发者开发定制的数据库组件。
OLE DB是用于访问数据的重要的系统级编程接口,它是ADO 的基础技术,同时还是 的数据源。
ADO是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLE DB的优点。
属于数据库访问的高层接口。
可以这么说,ADO为OLEDB提供高层应用API函数。
各种数据接口的连接方式一、ADO连接1、连接access数据库set conn=Server.CreateObject("ADODB.Connection")conn.open "Driver={Microsoft Access Driver(*.mdb)};dbq="&Server.Mappath("dbname(路径全名)")2、连接SQL Server数据库set conn=server.CreateObject("ADODB.Connection")sql="Driver={SQL Server};server=(local);uid=sa;pwd=sa;database=dbname"conn.open(sql)二、ODBC连接(必须先注册数据源---DSN)(列举配置SQL Server数据库文件DSN,打开管理工具---数据源(ODBC)---打开系统DSN选项卡---单击添加按钮---从列表中选择SQL Server,单击完成---在名称中输入数据库名称,在你想连接的SQL Server服务器中输入(local)---按向导提示完成)1、连接access数据库Set conn = Server.CreateObject("ADODB.Connection")conn.Open "DSN=注册名"2、连接SQL Server数据库set conn=Server.CreateObject("ADODB.Connection")conn.connectionstring="DSN=注册名;UID=sa;PWD=sa;"conn.open三、OLEDB连接数据库1、连接access数据库set conn=Server.CreateObject("ADODB.Connection")conn.open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&server.MapPath("dbname(路径全名)")&";Persist Security Info=False" set rs=Server.CreateObject("ADODB.Recordset")2、连接SQL Server数据库set conn=server.CreateObject("ADODB.Connection")sql="Provider=SQLOLEDB;data source=(local);initial catalog=dbname;UserID=sa;password=sa;"conn.open(sql)。