欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 网站制作教程 >

初学者来意识OLEDB和ODBC的区别

发表于2019-05-15 15:27| 次阅读| 来源网络整理| 作者session

摘要:初学者来意识OLEDB和ODBC的区别
初学者来意识OLEDB和ODBC的区别

ODBC(开放数据库互连):是Microsoft引进的一种早期数据库接口技术。它实践上是ADO的前身。早期的数据库衔接是十分艰巨的. 每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深入的了解. 因此,能解决各种各样数据库的通用的API就应运而生了. 也就是如今的ODBC(Open Database Connectivity), ODBC是人们在创建通用API的早期产物. 有许多种数据库服从了这种标准,被称为ODBC兼容的数据库.

OLEDB(对象链接和嵌入数据库)位于ODBC层与运用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的"运用程序". 你的ADO调用先被送到OLEDB,然后再交由ODBC解决. 你可能间接衔接到OLEDB层,假设你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)功能的降职.


用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"

用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"
值得留意的是,OLE DB对ODBC的兼容性,容许OLE DB访问现有的ODBC数据源。其优点很显著,因为ODBC相对OLE DB来说利用得更为普遍,因此可能获得的ODBC驱动程序相应地要比OLE DB的要多。这样不肯定要失去OLE DB的驱动程序,就可能立即访问原有的数据系统。
提供者位于OLE DB层,而驱动程序位于ODBC层。假设想利用一个ODBC数据源,需求利用针对ODBC的OLE DB提供者,它会接着利用相应的ODBC驱动程序。假设不需求利用ODBC数据源,那么可能利用相应的OLE DB提供者,这些通常称为本地提供者(native provider)。
可能清楚地看出利用ODBC提供者象征着需求一个额外的层。因此,当访问相反的数据时,针对ODBC的OLE DB提供者能够会比本地的OLE DB提供者的速度慢一些。

***********************************************