数据库访问接口(ODBC、OLEDB、ADO)

数据访问接⼝(ODBC、OLEDB、ADO)
最近在学C#的数据库编程,对于数据库接⼝技术这块的知识⼀直⽐较模糊,⽹上查了不少资料,看了⼏天还是朦朦胧胧的,只能做些笔记再研究了。
我们都知道,“数据库”是指⼀组相关信息的集合,最早的计算机应⽤之⼀也是开发数据库系统,即通过计算机来存储和检索数据的机制。
在数据库发展的前⼏⼗年⾥,数据以各种不同的⽅式存储并展现给⽤户,⽐如:层次数据库、⽹状数据库,这些都是⾮关系数据库。
直到1970年,才出现了“关系模型”,借助冗余数据来链接不同表中的记录,关系数据库中的每张表都包含⼀项作为每⾏唯⼀标识的信息(主键)。
关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
⾮关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase
  在最初的时候,对数据库的程序访问是由本机库来执⾏的,例如SQL Server的DBLib、Oracle的OCI。
这种⽅式的优点就是速度快,但缺点更明显,开发⼈员需使⽤不同的API来访问不同的数据库系统。⼀旦更换数据库,⼯作量将会很⼤。
  ⼀.ODBC(Open Database Connectivity)开放数据库连接
是为解决异构数据库间的数据共享⽽产⽣的,允许应⽤程序以SQL 为数据存取标准,存取不同DBMS(关系型数据管理系统)管理的数据;
使应⽤程序直接操纵DB中的数据,免除随DB的改变⽽改变。⽤ODBC 可以访问各类计算机上的DB⽂件,甚⾄访问如Excel 表和ASCI I数据⽂件这类⾮数据库对象。
它建⽴了⼀组规范,并提供了⼀组对数据库访问的标准API(应⽤程序编程接⼝)。这些API利⽤SQL来完成其⼤部分任务。ODBC本⾝也提供了对SQL语⾔的⽀持,⽤户可以直接将SQL语句送给ODBC。
总⽽⾔之,ODBC提供了⼀个公共数据访问层,可⽤来访问⼏乎所有的RDBMS。
  优点:⼀个基于ODBC的应⽤程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可⽤ODBCAPI进⾏访问。由此可见,ODBC的最⼤优点是能以统⼀的⽅式处理所有的数据库。
  ⼆.DAO(Data Access Object)数据访问对象
它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使⽤),并允许 Visual Basic 开发者通过 ODBC 像直接连接到其他数据库⼀样,直接连接到 Access 表。
所以如果数据库是Access数据库且是本地使⽤的话,建议使⽤这种访问⽅式。
  三.RDO(Remote Data Objects)远程数据对象
让写Windows应⽤程序的程序师能够进⼊微软和其他的数据库供给者的数据库。
然后,程序中RDO 陈述使⽤微软的底层数据存取对象 (DAO) 来实际进⼊数据库。数据库供给者写⼊DAO接⼝。
是⼀个到 ODBC 的、⾯向对象的数据访问接⼝,它同易于使⽤的 DAO style组合在⼀起,提供了⼀个
接⼝,形式上展⽰出所有 ODBC 的底层功能和灵活性。尽管 RDO 在很好地访问 Jet 或 ISAM 数据库⽅⾯受到限制,⽽且它只能通过现存的 ODBC 驱动程序来访问关系数据库。但是,RDO 已被证明是许多 SQL Server、Oracle 以及其他⼤型关系数据库开发者经常选⽤的最佳接⼝。RDO 提供了⽤来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及⽅法。
  四.OLE DB(Object Linking and Embedding, Database)对象连接嵌⼊数据库叶氏养胃汤
是微软的战略性的通向不同的数据源的低级应⽤程序接⼝,OLE DB不仅包括微软资助的标准数据接⼝ODBC的结构化查询语⾔(SQL)能⼒,还具有⾯向其他⾮SQL数据类型的通路。
OLE DB 是建⽴在 ODBC 功能之上的⼀个开放规范,ODBC 是为访问关系型数据库⽽专门开发的,OLE DB 则⽤于访问关系型和⾮关系型信息源。
OLE DB 最主要是由三个部分组合⽽成:
Data Providers 数据提供者
凡是透过OLE DB 将数据提供出来的,就是数据提供者。例如SQL Server 数据库中的数据表,或是附⽂件名为mdb 的Access 数据库档案等,都是Data Provider。
Data Consumers 数据使⽤者
凡是使⽤OLE DB 提供数据的程序或组件,都是OLE DB 的数据使⽤者。换句话说,凡是使⽤ADO 的应⽤程序或⽹页都是OLE DB 的数据使⽤者。
Service Components 服务组件
数据服务组件可以执⾏数据提供者以及数据使⽤者之间数据传递的⼯作,数据使⽤者要向数据提供者要求数据时,是透过OLE DB 服务组件的查询处理器执⾏查询的⼯作,⽽查询到的结果则由指针引擎来管理。
OLE DB 与ODBC 的关系
由于OLE DB 和ODBC 标准都是为了提供统⼀的访问数据接⼝,所以曾经有⼈疑惑:OLE DB 是不是替代ODBC 的新标准?答案是否定的。实际上,ODBC 标准的对象是基于SQL 的数据源(SQL-Based Data Source),⽽OLE DB 的对象则是范围更为⼴泛的任何数据存储。从这个意义上说,符合ODBC 标准的数据源是符合OLE DB 标准的数据存储的⼦集。符合ODBC 标准的数据源要符合OLE DB 标准,还必须提供相应的OLE DB 服务程序(Service Provider),就像SQL Server 要符合ODBC 标准,必须提供SQL Server ODBC 驱动程序⼀样。现在,微软⾃⼰已经为所有的ODBC 数据源提供了⼀个统⼀的OLE DB 服务程序,叫做ODBC OLE DB Provider。
  五.ADO(ActiveX Data Object)活动数据对象
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.NET 的数据源。
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.open
三、OLEDB连接数据库
1、连接access数据库
英雄本 电影 2017set conn=Server.CreateObject("ADODB.Connection")
强度理论conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&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;User ID=sa;password=sa;"
conn.open(sql)

本文发布于:2024-09-22 09:43:32,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/270726.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   数据   访问
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议