不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
初学者来认识OLEDB和ODBC的区别
编辑:dnawo 日期:2007-11-01
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"
值得注意的是,OLEDB对ODBC的兼容性,允许OLEDB访问现有的ODBC数据源。其优点很明显,由于ODBC相对OLEDB来说使用得更为普遍,因此可以获得的ODBC驱动程序相应地要比OLEDB的要多。这样不一定要得到OLEDB的驱动程序,就可以立即访问原有的数据系统。
提供者位于OLEDB层,而驱动程序位于ODBC层。如果想使用一个ODBC数据源,需要使用针对ODBC的OLEDB提供者,它会接着使用相应的ODBC驱动程序。如果不需要使用ODBC数据源,那么可以使用相应的OLEDB提供者,这些通常称为本地提供者(native provider)。
可以清楚地看出使用ODBC提供者意味着需要一个额外的层。因此,当访问相同的数据时,针对ODBC的OLEDB提供者可能会比本地的OLEDB提供者的速度慢一些。
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"
值得注意的是,OLEDB对ODBC的兼容性,允许OLEDB访问现有的ODBC数据源。其优点很明显,由于ODBC相对OLEDB来说使用得更为普遍,因此可以获得的ODBC驱动程序相应地要比OLEDB的要多。这样不一定要得到OLEDB的驱动程序,就可以立即访问原有的数据系统。
提供者位于OLEDB层,而驱动程序位于ODBC层。如果想使用一个ODBC数据源,需要使用针对ODBC的OLEDB提供者,它会接着使用相应的ODBC驱动程序。如果不需要使用ODBC数据源,那么可以使用相应的OLEDB提供者,这些通常称为本地提供者(native provider)。
可以清楚地看出使用ODBC提供者意味着需要一个额外的层。因此,当访问相同的数据时,针对ODBC的OLEDB提供者可能会比本地的OLEDB提供者的速度慢一些。
评论: 0 | 引用: 0 | 查看次数: 3471
发表评论
请登录后再发表评论!