不好意思写错了,应该是ODBC。
解决方案 »
- 200分求一函数:把matalab函数转化为vc
- 编译出错:fatal error C1001: INTERNAL COMPILER ERROR(compiler file 'msc1.cpp', line 1786)
- 在WIN32下如何用LoadBitmap加载位图
- 听说这里高手多,请教:一个程序如何才能不被删除、停止运行、结束任务等?欢迎高手,解决者50分以上,up者1分。
- 求大家帮忙啊!
- 做个最小的GUI helloworld程序,请高手指导指导
- Telnet协议???
- 请问 库升级了,那以前编的程序怎么修改 库的调用呀?
- 关于控件通知消息
- 组合框为何拉不开?
- 谁能给我一个用VC写EXCEL文件的例子,我的例子老是编译不通过!
- 如何用waveOut/waveIn实现音频实时分帧播放
不过我知道 OLEDB 是基于 COM 的一组接口规范,用来访问各种数据源,主要由数据源提供商来实现,如 ORACLE、SQL Server、Access。
ADO 是利用 OLEDB 提供的基本接口,加以封装,形成简单易用的一组对象/方法/属性集合,方便快速开发。
ODBC 是在 C 语言级别上实现的一组调用规范,目的也是访问各种数据源,不过现在来说比较老了(个人观点)。
DAO 建立在 MS JET 技术 (最早在 Access 中实现)上的,主要是用来访问所谓的桌面数据库(Access/FoxPro/dBase 等)。
我在开发文档中找不到,您能发给我吗?[email protected] 多谢
odbc: 曾经的数据库通信标准
oledb: 在一切对象化的趋势下,ms打算用它取代odbc.
oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这
样没有自己的oledb提供者的数据库也可以使用oledb的特点了。oledb的效率要高
于odbc.
ado: 其实只是一个应用程序层次的界面,它用oledb来与数据库通信。
OLEDB可以访问关系型数据库和非关系型数据库(如CSV文本等),基于COM,M$大力推荐的。
ADO是OLEDB的封装,为了方便使用OLEDB,可以在VBScript或JavaScript中使用。
ODBC太古老了,效率不高,而且只能访问关系型数据库。另外还有一种:OLEDB模板,将OLEDB封装成模板来使用,比较方便,我喜欢!
个人建议:在VB、VBScript、JavaScript中使用ADO,VC中使用OLEDB模板。
DAO:数据访问对象
OLE DB:对象链接和嵌入数据库
ADO:ActiveX数据对象OLE DB由一组COM接口组成的,而这些接口提供集中的数据库管理服务。
ADO是类属于OLEDB的用户程序,设计用来访问任何OLEDB供应程序。还可以复制早期数据库技术所支持的接口。它的主要目标是使得OLEDB供应程序提供的普通运算更容易。听说能跨平台使用。
ODBC我就不想多说了,以前和现在一部分程序都建立在ODBC基础上,我都说累了。
DAO已经广泛的被ODBC和OLEDB所代替了,而且DAO也确实不应该再于新应用程序的开发中了。也就无需多说了。
DAO:数据访问对象
OLE DB:对象链接和嵌入数据库
ADO:ActiveX数据对象OLE DB由一组COM接口组成的,而这些接口提供集中的数据库管理服务。
ADO是类属于OLEDB的用户程序,设计用来访问任何OLEDB供应程序。还可以复制早期数据库技术所支持的接口。它的主要目标是使得OLEDB供应程序提供的普通运算更容易。听说能跨平台使用。
ODBC我就不想多说了,以前和现在一部分程序都建立在ODBC基础上,我都说累了。
DAO已经广泛的被ODBC和OLEDB所代替了,而且DAO也确实不应该再于新应用程序的开发中了。也就无需多说了。
MS Sql Server7.x及其更高版本的最底层Driver是OLEDB (USE TDS),ODBC Drvier是用OLEDB Driver 封装的;而大多数其他数据库只提供ODBC Driver,而OLEDB 用的是OLEDB over ODBC。
关于性能问题就显而易见了。
你说sql server最底层Driver是OLEDB (USE TDS),我觉的不大正确。
第一:sql server只是在服务端的各个引擎(如命令分析器,加锁管理器)之间通信时采用了oledb机制.
第二:tds(表格式数据流)是sql server客户端和服务端之间采用的专用自描述数据流,他们可以由odbc,oledb,db-library发出和接受。不单单是oledb.
第三:ODBC比OLEDB古老,你说ODBC用OLEDB封装,那么在SQL SERVER中重写了ODBC吗?
谢谢回答下面的图出自《SQL SERVER 7.0技术内幕》p65,请参考: --------SQL SERVER客户应用程序-------
| | |
| | |
OLE DB ODBC DB-LIBRARY
| | |
|________________|__________________|
客户网库
客户机 |
————————————————————————————————————————
网络
________________________________________________________________________________
服务器 |
服务器网库
|
ODS(开放式数据服务)
|
SQL SERVER(一堆引擎的集合)
我需要你的帮助!!
[email protected]
也许我说的不正确,但是有一点需要指出,Sql Server7.0及其以后产品不再提供DB-Library,
也就是说DB-Library的最后一个版本是for 6.5的。
DAO (Data Access Objects數據訪問對象)是第一個面向對象的介面,它提供了另一种本地操作數据庫的机制,它通過程序代碼而不是中間層(比如OLE,ODBC)來訪問數据庫.多個DAO构成一個体系結构,在這個結构中各個DAO協同操作.它曾經是訪問本地數据庫( Microsoft Jet 數据庫引擎)最強有力的工具. 需要說明的是后來又出現了ODBCDirect, 它為DAO提供了訪問遠程ODBC數据的全部能力,使DAO能夠訪問遠程數据庫,但這并不說明DAO仍有前途可言.(呵呵,個人看法,上當莫怪)RDO (Remote Data Objects遠程數据對象)是一個專門為訪問訪問遠程ODBC關系數据庫而開發的程序接口,它同易于使用的 DAO style組合在一起,提供了一個能利用所有 ODBC 的底層功能的介面。RDO 在地訪問 Jet 或 ISAM 數据庫,以及只能通過現存的 ODBC 驅動程式來訪問關系數据庫方面受到諸多限制。所以在OLE訪問日漸成為趨勢的今天,這并不是一個很好的選擇.(聲明同上).
ADO (ActiveX Data Objects)提供了与DAO,RDO完全不同的數据訪問方式--OLE。ADO 主要包括 RDO 風格的功能性,以便和 OLE DB 資料源交互,另外還包括遠端和 DHTML 技術。不過,也應當注意,ADO 當前幷不支援 DAO 的所有功能(比如幷不支援資料定義 (DDL)、用戶、組,等等) ,沒有與 rdoEngine 和 rdoEnvironment 物件相類似的物件來顯露 ODBC 驅動程式管理器和 hEnv 介面。儘管事實上您的介面可能是通過 ODBC OLE DB 服務提供程式實現的,但您當前也不能從 ADO 中創建 ODBC 資料源。幸好ODBC過時的呼聲越來越高漲.
以上著重從編程的角度討論了訪問數据庫的不同方法,從敘述中我們可以看到以上方法种种的不同本質上都是的訪問方式的不同.主要區別在于:
1,是否采用了分層的方式來訪問數据庫,比如,dao 与odbc,ole之間顯著的不同.軟件技術從最初的不分層,到c/s結构,到如今的多層結构.都是通過設計通用的中間層來簡化程序設計.
2,是支持com 架构的ole訪問方式,還是支持odbc架构的odbc驅動訪問,從大多數的說法來看,好像ole是今后軟件技術支持的重點.這之間的差別有些并不如我所說的那么明顯,各种各樣的變化正在繼續.我從訪問數据庫的角度總結了一張表:對不起,沒畫成電子圖.