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提供者的速度慢一些。
详细解决方案
ODBC && OLEDB
热度:26 发布时间:2024-01-03 21:59:47.0
相关解决方案
- vc 在程序中注册 ODBC 有关问题
- 快让这个未在本地计算机下注册“Microsoft.ACE.OLEDB.12.0”提供程序给搞死了,求解决方法,求!
- 64位操作系统能否使用 Microsoft.ACE.OLEDB.12.0 查询2003及以上的 Excel
- 因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式上运行,所以该访问接口无法用于分布式查询
- 如何解决 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序
- 求教~ [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1,该如何解决
- ASP程序出现如下异常怎么解决?[Microsoft][ODBC Visual FoxPro Driver]SQL: Out of memory
- 关于sqlconnection、OleDB、Odbc连接的用法有关问题
- !ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
- 急求:ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序,该如何处理
- OleDb UPDATE 异常,无法更新
- 悄悄的来这里问一个有关问题:关于分别用 OleDb 与 SqlClient 的参数化查询的有关问题
- Microsoft OLE DB Provider for ODBC Drivers 异常 '80040e14'异常怎么解决啊
- Microsoft OLE DB Provider for ODBC Drivers 异常 '80040e14'异常怎么解决啊
- 哪个有PI OLEDB Provider的安装包通向一下啊(顶者有分)解决方案
- SQLFetch failed: {error} STATE=22002, CODE=零, MSG=[DataDirect][ODBC Informix dri
- SQLFetch failed: {error} STATE=22002, CODE=0, MSG=[DataDirect][ODBC Informix dri解决方案
- 【【 远程 ODBC VFP 数据库的有关问题 】】
- 哪位高手能给个 db2 odbc 驱动上载地址
- odbc isql db2: 0509-103 The module has an invalid magic number,该如何处理
- 怎么动态配置DB2数据源(ODBC)
- 哪位高手能给个 db2 odbc 驱动下载地址
- ColdFusion查询:ODBC Error Code = 22001 (String data right truncation),该怎么处理
- ODBC Error Code = S1000 [MySQL][ODBC 3.51 Driver]解决方案
- ColdFusion查询:ODBC Error Code = 22001 (String data right truncation)解决办法
- 在注册表中将microsoft ODBC for oracle 删除了,如何恢复
- 这是什么毛病:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 数 ...
- 为什么出现java.lang.ClassNotFoundException: sun.jdbc.odbc.jdbcOdbcDriv ...
- C-ODBC-ORACLE
- ACE.OLEDB 12连接xls的有关问题