分类: 数据库开发技术
2015-07-27 13:44:52
原文地址:[转]ODBC ADO OLEDB三者区别 作者:54xw
转一篇文章,虽然还不是很了解,但至少有个概念
起初,出现的是odbc提供c的函数调用接口,定义了一组通用的数据库API,但速度比较慢, ole db是微软的第三代组件结构,速度较odbc快,而ado是oledb的一个子集,是com组件,更快,更高效。
odbc,oledb,ado,adox的关系:
odbc: 曾经的数据库通信标准
oledb: 在一切对象化的趋势下,ms打算用它取代odbc, oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这样没有自己的oledb提供者的数据库也可以使用oledb的特点了。
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是针对OLEDB(直接的和面向ODBC的)的。
UDL的创建方法:
右击桌面或资源管理器-->新建-->microsoft数据连接
其中的设置工作应该比较清楚了。
UDL的用法:
connstr="file name=e:\abc\abc.udl
ADO不是比ODBC和OLEDB高级些,而是高层些