2022年数据库接口可用 .pdf

上传人:Q****o 文档编号:27839342 上传时间:2022-07-26 格式:PDF 页数:10 大小:410.32KB
返回 下载 相关 举报
2022年数据库接口可用 .pdf_第1页
第1页 / 共10页
2022年数据库接口可用 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年数据库接口可用 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库接口可用 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据库概念1.UDA UDA (universal data access, 通用数据访问,也叫全局数据访问)是microsoft 为企业应用范围内各种类型信息存取所制定的一项新战略,它提供对多种数据源进行存取的一致界面。说起数据存取界面,microsoft 以前是最令人感到混乱和迷惑的了。从早期的db_library 到广为接受的 ODBC ,及至近年来基于对象的DAO (data access obejct,数据存取对象) ,RDO(remote data object,远程数据对象) ,DAO/ODBCdirect (DAO/ ODBC 直接存取),ADO(activex data ob

2、ject, 活动数据对象) , 给用户的选择带来了麻烦,而各种技术之间互不通用,也使得每选择一种存取界面都要重新学习,加重了开发人员的负担。因此,UDA 技术的出现将会结束这种混乱局面。今后只要使用UDA 即可,而不必劳神费力地在那些存取界面上选择了。UDA 可以看作是应用程序和各种数据之间的一个中间层:UDA 一方面可以对各种类型的数据源进行高效存取,同时又提供一个独立于编程语言、开发工具的统一编程界面。这样,企业可以选用他们所熟悉的,容易使用的开发工具把分散的、完全不同的各类数据源集成起来,创建容易易维护,功能强大的应用程序。UDA 并不是一种全新的技术,它是由 microsoft 以前各

3、种数据存取界面加以综合发展而来的,并遵循microsoft 最新的 DCOM 规范。它的技术基础是ODBC 、RDO、DAO 等这些成熟的,广泛使用的技术。因此UDA 以得到业界广泛支持的工业标准为基础,所以能够和目前各主要的数据库平台一同工作,同时因而容易学习,便于使用。UDA 实际是由microsoft 的一些数据存取组件(data access components)组成的,它的各个组件用于各种特定的目的,而UDA则定义了一种协同工作的机制。这些组件包括ADO(activex data object) ,RDS(remote data service,以前称为advanced datab

4、ase connector ,adc) , OLEDB 和 ODBC ,其中最重要的是OLEDB 和 ADO 。OLEDB 提供了对底层各种数据源的存取界面,面向数据提供者;ADO 则向应用程序提供了统一的数据存取界面,面向应用程序开发人员。UDA 技术包括OLE DB 和 ADO 两层标准接口,OLE DB 是系统级的编程接口,它定义了一组 COM 接口 ,这组接口封装了各种数据系统的访问操作,这组接口为数据使用方和数据提供方建立了标准 ,OLE DB 还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此 ,数据提供方只需实现一些简单的数据操作,在使用方就可以获得全

5、部的数据控制能力。ADO 是应用层的编程接口,它通过 OLE DB 提供的 COM 接口访问数据,它适合于各种客户机/服务器应用系统和基于Web 的应用 ,尤其在一些脚本语言中访问数据库操作是ADO 的主要优势。 ADO是一套用自动化技术建立起来的对象层次结构,它比其他的一些对象模型如DAO(Data Access Object) 、RDO(Remote Data Object) 等具有更好的灵活性,使用更为方便 ,并且访问数据的效率更高。结构如下图所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

6、- - - - 第 1 页,共 10 页 - - - - - - - - - 2. ODBC( 开放数据库互联技术) ODBC是一种被广泛采用的数据库访问接口技术,该接口是为实现最大的互用性而设计的。和其它数据库接口相比,ODBC API 属较低层的接口。ODBC 接口也存在缺陷,即该接口的使用仅限于关系数据库,由于ODBC 的关系型特性,很难使用ODBC 与非关系数据库源进行通信,例如EMail ,Word 文档。ODBC 提供了 ODBC 驱动程序管理器(ODBC32 DLL) 、输入库 (ODBC32 LIB) 和 ODBC API 函数说明的头文件。客户应用程序与输入库连接,以使用OD

7、BC 驱动程序管理器提供的函数。在运行时,ODBC 驱动程序管理器调用ODBC 驱动程序中的函数,实现对数据库的操作。 由于使用了驱动程序,从而使应用程序和具体的数据库调用隔离开来。ODBC 的总体结构有 4 个组件:应用程序、Driver Manager 、驱动程序、数据源,如下图。尽管 ODBC 为关系数据提供了统一的接口,但由于ODBC API 十分复杂,因此在Visual C+中 MFC 提供了一些类对ODBC 进行了封装, 从而简化了ODBC API 的调用,但由此也损失了 ODBC API 对底层的灵活控制。它也是应用最广泛的关系型数据库的界面,几乎得到了所有数据库厂商的支持。它是

8、低层的界面,用来针对sql server、oracle 等关系型数据库系统提供统一的编程界面。在uda 中,odbc 通过 oled bprovider for odbc 集成到 oledb 中。3. OLE DB 与 ODBC 一样, OLE DB 属于底层数据库编程接口,但OLE DB 对 ODBC 的两个不足进行了扩展:一是提供了一个数据库编程的COM 接口,该接口使OLE DB 具有比 ODBC 更好的健壮性和灵活性;二是提供了一个可用于关系型和非关系型数据源的接口,这为用户提名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

9、- 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 供了访问不同类型数据源的一种通用方法。OLE DB 由客户和服务器组成。OLE DB 的客户是使用数据的应用程序,它使用OLEDB接口对数据进行访问和控制。OLE DB 服务器则是提供接口的软件组件,服务器又可分为数据提供程序和服务器提供程序。其功能和驱动程序相同,不过 OLE DB 实现的是 COM 接口,而不是 API 接口。当客户对数据库进行操作时,通过OLE 接口和数据源进行交互,数据服务器从数据源取得所要查询的数据,并以表格形式提供给接口,再由客户将数据从接口取出并使用。在操作

10、过程中,客户和数据服务器只需对接口进行操作。OLEDB 的体系结构如下图所示。OLE DB 是 UDA 结构中最重要的组件,它是整个UDA 技术的基础。 OLE DB 是 UDA 的底层的面向对象的数据存取界面,面向各种数据源,包括关系型数据库、isam、jet 或其他任何数据。 它被设计为一种开放的规范,以存取各类数据源,包括从主机系统到桌面应用的各类数据。从这一点上说,它的作用类似于ODBC 。OLE DB 定义了数据存取、操纵的界面, 这些界面主要供开发数据库与数据库引擎的数据提供者( data provider)使用,他们编写出符合OLE DB 规范的数据库接口,使UDA 能对他们的数

11、据库进行存取。应用程序开发人员不必直接使用OLE DB ,他们应该使用更方便的高层编程界面ADO 。4.ADO (ActiveX数据对象技术 ) ADO 是一种特殊的OLE DB 客户程序,但它不依赖于特定的OLE DB 服务器,相反,它支持所有的OLE DB 服务提供者。通过这些OLE DB 服务提供者, ADO 支持客户服务器模式和基于Web 的数据库应用。ADO 简化了 OLE DB , 属于高层的数据库接口。ADO 包括多个关键对象, 分别为 Connection对象、 Command 对象、 Parameter对象、 Recordset 对象、 Field 对象、 Error 对象和

12、 Property对象如图所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 与一般的数据库接口相比,ADO可更好地用于网络环境,通过优化技术 ,它尽可能地降低网络流量 ;ADO的另一个特性是使用简单,不仅因为它是一个面向高级用户的数据库接口,更因为它使用了一组简化的接口用以处理各种数据源。这两个特性使得ADO 必将取代RDO 和DAO, 成为最终的应用层数据接口标准。ADO 实际上是 OLE DB 的应用层接口 ,这种结构

13、也为一致的数据访问接口提供了很好的扩展性 ,而不再局限于特定的数据源,因此,ADO 可以处理各种OLE DB 支持的数据源。5.DAO (数据访问对象技术) DAO 是一组 Microsoft Access Jet 数据库引擎的COM 自动化接口, Microsoft Jet 是一种数据库管理组件。DAO 直接与 AccessJet 数据库通信,通过Jet 数据库引擎, DAO 也可以同其它数据库进行通信,如图所示。DAO 的基于 COM 的自动化接口提供了比基于函数的API 更多的功能, DAO 提供了一种数据库编程的对象模型。该对象模型比API 更适合于面向对象的程序开发。此外,DAO 还

14、封装了 Access 数据库的结构单元,如表、查询、索引等,这样,通过DAO ,可以直接修改数据库的结构, 而不必使用SQL 的数据定义语言(DDL) 。 但对于使用DAO 访问 Oracle,SQL Server 等大型数据库时, 对数据库的所有调用以及输出的数据都必须经过AccessJet引擎,这严重影响了对数据库数据操作的效率。DAO 和 ODBC 都是能够提供独立于DBMS 的数据库应用程序接口的数据库访问技术,DAO 是对 MicrosoR Jet 引擎的优化,通过MicrosoR Jet 访问数据,可以处理ODBC 和其它的外部数据源。ODBC 是 Microsoft WOSA(

15、视窗操作系统公开标准体系)的主要组成部分,因此 ODBC 仍然在数据库应用开发中占有重要位置。6. RDS RDS 就是以前的ADC ,现在被集成到了ADO 中。为了区分ADC 与 ado 的关系, ADC改为 RDS,它与 ADO 使用同一个编程模型。RDS 是一种新的web 数据存取技术, 它允许开发者在支持Activex 的浏览器中创建以数据为中心的应用。RDS 创建这样的框架,它允许与ODBC 数据源(包括企业内的Intranet 和整个 Internet)方便地交互。RDS 的工作原理是:首先把数据从数据库服务器中下载到本地的数据缓冲区,然后应用程序(或浏览器)通过RDS 操纵本地数

16、据缓冲区中的数据,最后RDS 负责用缓冲区中的数据更新远程数据库中的数据,同时处理更新冲突。RDS 提供了下述优点:客户端的数据缓存、可更新的数据、并支持数据绑定的Activex 控件。7. ISAM (索引顺序访问方法)它是一种索引机制,用于高效访问文件中的数据行。一般在 vb 中访问的数据库有三种:1)JET 数据库,即Microsoft Access 2)ISAM 数据库,如: dBase,FoxPro 等名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 -

17、 - - - - - - - - 3) ODBC 数据库,凡是遵循ODBC 标准的客户 /服务器数据库。 如: Microsoft SQL Server 、Oracle ISAM 是 Indexed Sequential Access Method(索引顺序存取方法)的缩写。是IBM 公司发展起来的一个文件操作系统,可以连续地(按照他们进入的顺序)或者任意地(根据索引)记录任何访问。 每个索引定义了一次不同排列的记录。一个职工数据库基于搜寻的信息可以有几个索引。 例如, 按照职工所属科室的部门索引中,同时还有按照职工姓氏字母顺序排名的名字索引。 每个索引中的关键词都是制定的。对于职工名字字母顺

18、序索引,姓就是指定的关键词。8. JET 数据库引擎引擎( engine)能够决定程序管理和数据操作的程序或程序段。数据库引擎就是操作数据库的一段程序或程序段。Microsoft Jet 是 Microsoft Access 和 Visual Basic 使用的一种数据库引擎。在DAO3.1 版本以前,数据访问对象DAO(data access object )被定义为 “Microsoft Jet引擎的编程接口” ,也就是说, DAO 和 Jet在历史上几乎是同义词。DAO 访问数据库都要通过Microsoft Jet数据库引擎来完成。 当然,这两个概念在内涵上是不一样的,Jet不能被直接使

19、用, 只有通过DAO或 Access 才能直接使用Jet. 但是, DAO3.1 之后增加了一项重要的功能,这就是 ODBCDirect 访问。 ODBCDirect 使得DAO 可以跳过 Jet 引擎,直接访问ODBC 数据源。正是由于有了这项功能,DAO 不再绑定在 Jet上了, DAO 与 Jet仍有千丝万缕的联系。一般来说,如果应用程序使用的是本地数据库,那么 DAO 一般都通过Jet来访问数据库,反之,如果使用的是远程数据库,那么DAO通过 ODBCDirect 来访问数据库。Jet 是通过SQL 来驱动的,但是这种SQL 可能和通常的实现不太一样。这种情况下可能会带来好处,也有可能

20、会带来坏处。当使用DAO 访问数据库时就必须考虑这种差别。因为Jet的 SQL 的运行和一些标准的SQL 运行性能差异很大。9. 代码演示下面的代码列表演示如何使用适用于SQL Server 的 .NET Framework 数据提供程序(System.Data.SqlClient) 、 适 用 于OLE DB 的.NET Framework 数 据 提 供 程 序(System.Data.OleDb) 、适用于ODBC 的 .NET Framework 数据提供程序(System.Data.Odbc) 和适用于Oracle 的 .NET Framework 数据提供程序(System.Dat

21、a.OracleClient) 从数据库中检索数据。数据在一个DataReader 中返回。(C#代码为例)SqlClient using System; using System.Data; using System.Data.SqlClient; class Program static void Main() string connectionString = GetConnectionString(); string queryString = 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -

22、 - - - 第 5 页,共 10 页 - - - - - - - - - SELECT CategoryID, CategoryName FROM dbo.Categories; using (SqlConnection connection = new SqlConnection(connectionString) SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; try connection.Open(); SqlDataReader reader = command.E

23、xecuteReader(); while (reader.Read() Console.WriteLine(t0t1, reader0, reader1); reader.Close(); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString() / To avoid storing the connection string in your code, / you can retrieve it from a configuration file. retu

24、rn Data Source=(local);Initial Catalog=Northwind; + Integrated Security=SSPI; 2)OleDbusing System; using System.Data; using System.Data.OleDb; class Program 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - static void Main() string connecti

25、onString = GetConnectionString(); string queryString = SELECT CategoryID, CategoryName FROM Categories; using (OleDbConnection connection = new OleDbConnection(connectionString) OleDbCommand command = connection.CreateCommand(); command.CommandText = queryString; try connection.Open(); OleDbDataRead

26、er reader = command.ExecuteReader(); while (reader.Read() Console.WriteLine(t0t1, reader0, reader1); reader.Close(); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString() / To avoid storing the connection string in your code, / you can retrieve it from a con

27、figuration file. / Assumes Northwind.mdb is located in the c:Data folder. return Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + c:DataNorthwind.mdb;User Id=admin;Password=; 3)Odbcusing System; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - -

28、 - using System.Data; using System.Data.Odbc; class Program static void Main() string connectionString = GetConnectionString(); string queryString = SELECT CategoryID, CategoryName FROM Categories; using (OdbcConnection connection = new OdbcConnection(connectionString) OdbcCommand command = connecti

29、on.CreateCommand(); command.CommandText = queryString; try connection.Open(); OdbcDataReader reader = command.ExecuteReader(); while (reader.Read() Console.WriteLine(t0t1, reader0, reader1); reader.Close(); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString

30、() / To avoid storing the connection string in your code, / you can retrieve it from a configuration file. / Assumes Northwind.mdb is located in the c:Data folder. return Driver=Microsoft Access Driver (*.mdb); + Dbq=c:DataNorthwind.mdb;Uid=Admin;Pwd=; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

31、- - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 4)OracleClient using System; using System.Data; using System.Data.OracleClient; class Program static void Main() string connectionString = GetConnectionString(); string queryString = SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER; using (Ora

32、cleConnection connection = new OracleConnection(connectionString) OracleCommand command = connection.CreateCommand(); command.CommandText = queryString; try connection.Open(); OracleDataReader reader = command.ExecuteReader(); while (reader.Read() Console.WriteLine(t0t1, reader0, reader1); reader.Cl

33、ose(); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - / To avoid storing the connection string in your code, / you can retrieve it from a configuration file. / Assumes Northwind.mdb is located in the c:Data folder. return Data Source=ThisOracleServer;Integrated Security=yes; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁