ODBC vs OLEDB
通常,软件应用程序是用特定的编程语言(如Java、c#等)编写的,而数据库则接受其他特定于数据库的语言(如SQL)的查询。因此,当软件应用程序需要访问数据库中的数据时,就需要一个能够将语言(应用程序和数据库)相互转换的接口。否则,应用程序程序员需要学习并在其应用程序中合并特定于数据库的语言。ODBC(开放数据库连接)和OLEDB(对象连接和嵌入,数据库)是解决这个特定问题的两个接口。ODBC是一个独立于平台、语言和操作系统的接口,可用于此目的。OLEDB是ODBC的继承者。
ODBC是什么?
ODBC是访问数据库管理系统(DBMS)的接口。ODBC是SQL Access Group在1992年开发的,当时数据库和应用程序之间还没有标准的通信媒介。它不依赖于特定的编程语言、数据库系统或操作系统。程序员可以使用ODBC接口编写可以从任何数据库查询数据的应用程序,而无需考虑运行的环境或使用的DBMS类型。
因为ODBC驱动程序充当应用程序和数据库之间的转换器,所以ODBC能够实现语言和平台的独立性。这意味着应用程序不必了解数据库特定语言。相反,它只知道并使用ODBS语法,驱动程序将用它能够理解的语言将查询翻译到数据库。然后,以应用程序可以理解的格式返回结果。ODBC软件API可用于关系数据库系统和非关系数据库系统。将ODBC作为应用程序和数据库之间的通用中间件的另一个主要优势是,每次数据库规范更改时,软件都不需要更新。只有对ODBC驱动程序进行更新才足够。
OLEDB是什么?
OLEDB是微软开发的数据API。它允许访问来自大量数据源的数据。它是使用Microsoft的COM(组件对象模式)实现的。OLEDB被认为是ODBC的继承者,它可以在比ODBC高得多的级别上处理数据源。从本质上说,OLEDB将ODBC特性扩展到非关系数据库(例如对象数据库和电子表格)。这意味着,OLEDB可以与不使用SQL的数据库一起使用。OLEDB是作为微软数据访问组件(MDAC)的一部分开发的。
ODBC和OLEDB的区别是什么?
如果程序员不熟悉COM,那么ODBC是更好的选择。但是,ODBC只适用于关系数据库,而OLEDB同时适用于关系数据库和非关系数据库。如果数据库不支持OLE(非OLE环境),那么ODBC是最佳选择。如果环境是非SQL的,那么必须使用OLEDB(因为ODBC只与SQL一起工作)。类似地,如果需要可互操作的数据库组件,则需要使用OLEDB而不是ODBC。然而,对于16位数据访问,ODBC是唯一的选择(OLEDB不支持16位)。最后,OLEDB是一次连接多个数据库的最佳选择(ODBC一次只能连接一个数据库)。
留下一个回复