濮阳杆衣贸易有限公司

主頁 > 知識庫 > OLEDB和ODBC的區(qū)別(優(yōu)缺點)

OLEDB和ODBC的區(qū)別(優(yōu)缺點)

熱門標(biāo)簽:美國地圖標(biāo)注軟件下載 硅基電話機器人官網(wǎng) 西安電話自動外呼系統(tǒng) 城市地圖標(biāo)志怎么標(biāo)注 電話機器人怎么看余額 合肥crm外呼系統(tǒng)加盟 怎么修改高德地圖標(biāo)注 長沙外呼系統(tǒng)平臺 漯河電銷回?fù)芡夂粝到y(tǒng)
ODBC是一種連接數(shù)據(jù)庫的開放標(biāo)準(zhǔn)。

ODBC(OpenDataBase Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows OpenServices Architecture)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
它本身就是為了是數(shù)據(jù)庫的使用者不必考慮使用的是何種數(shù)據(jù)庫而只需要相同的操作而設(shè)計的。

ODBC是Open Database Connect即開放數(shù)據(jù)庫互連的簡稱,它是由Microsoft 公司于1991 年提出的一個用于訪問數(shù)據(jù)庫的統(tǒng)一界面標(biāo)準(zhǔn),是應(yīng)用程序和數(shù)據(jù)庫系統(tǒng)之間的中間件。它通過使用相應(yīng)應(yīng)用平臺上和所需數(shù)據(jù)庫對應(yīng)的驅(qū)動程序與應(yīng)用程序的交互來實現(xiàn)對數(shù)據(jù)庫的操作,避免了在應(yīng)用程序中直接調(diào)用與數(shù)據(jù)庫相關(guān)的操作,從而提供了數(shù)據(jù)庫的獨立性。
ODBC 主要由驅(qū)動程序和驅(qū)動程序管理器組成。驅(qū)動程序是一個用以支持ODBC 函數(shù)調(diào)用的模塊,每個驅(qū)動程序?qū)?yīng)于相應(yīng)的數(shù)據(jù)庫,當(dāng)應(yīng)用程序從基于一個數(shù)據(jù)庫系統(tǒng)移植到另一個時,只需更改應(yīng)用程序中由ODBC 管理程序設(shè)定的與相應(yīng)數(shù)據(jù)庫系統(tǒng)對應(yīng)的別名即可。驅(qū)動程序管理器可鏈接到所有ODBC 應(yīng)用程序中,它負(fù)責(zé)管理應(yīng)用程序中ODBC 函數(shù)與DLL 中函數(shù)的綁定。
ODBC 使用層次的方法來管理數(shù)據(jù)庫,在數(shù)據(jù)庫通信結(jié)構(gòu)的每一層,對可能出現(xiàn)依賴數(shù)據(jù)庫產(chǎn)品自身特性的地方,ODBC 都引入一個公共接口以解決潛在的不一致性,從而很好地解決了基于數(shù)據(jù)庫系統(tǒng)應(yīng)用程序的相對獨立性,這也是ODBC 一經(jīng)推出就獲得巨大成功的重要原因之一。

從結(jié)構(gòu)上分,ODBC 分為單束式和多束式兩類。

1.單束式驅(qū)動程序

單束式驅(qū)動程序介于應(yīng)用程序和數(shù)據(jù)庫之間,像中介驅(qū)動程序一樣數(shù)據(jù)提供一個統(tǒng)一的數(shù)據(jù)訪問方式。當(dāng)用戶進行數(shù)據(jù)庫操作時,應(yīng)用程序傳遞一個ODBC 函數(shù)調(diào)用給ODBC 驅(qū)動程序管理器,由ODBC API 判斷該調(diào)用是由它直接處理并將結(jié)果返回還是送交驅(qū)動程序執(zhí)行并將結(jié)果返回。由上可見,單束式驅(qū)動程序本身是一個數(shù)據(jù)庫引擎,由它直接可完成對數(shù)據(jù)庫的操作,盡管該數(shù)據(jù)庫可能位于網(wǎng)絡(luò)的任何地方。

2.多束式驅(qū)動程序

多束式驅(qū)動程序負(fù)責(zé)在數(shù)據(jù)庫引擎和客戶應(yīng)用程序之間傳送命令和數(shù)據(jù),它本身并不執(zhí)行數(shù)據(jù)處理操作而用于遠(yuǎn)程操作的網(wǎng)絡(luò)通信協(xié)議的一個界面。前端應(yīng)用程序提出對數(shù)據(jù)庫處理的請求,該請求轉(zhuǎn)給ODBC 驅(qū)動程序管理器,驅(qū)動程序管理器依據(jù)請求的情況,就地完成或傳給多束驅(qū)動程序,多束式驅(qū)動程序?qū)⒄埱蠓g為特定廠家的數(shù)據(jù)庫通信接口(如Oracle 的SQLNet)所能理解的形式并交于接口去處理,接口把請求經(jīng)網(wǎng)絡(luò)傳送給服務(wù)器上的數(shù)據(jù)引擎,服務(wù)器處理完后把結(jié)果發(fā)回給數(shù)據(jù)庫通信接口,數(shù)據(jù)庫接口將結(jié)果傳給多束式ODBC 驅(qū)動程序,再由驅(qū)動程序?qū)⒔Y(jié)果傳給應(yīng)用程序。

ODBC(開放數(shù)據(jù)庫互連):是Microsoft引進的一種早期數(shù)據(jù)庫接口技術(shù)。它實際上是ADO的前身。早期的數(shù)據(jù)庫連接是非常困難的. 每個數(shù)據(jù)庫的格式都不一樣,開發(fā)者得對他們所開發(fā)的每種數(shù)據(jù)庫的底層API有深刻的了解. 因此,能處理各種各樣數(shù)據(jù)庫的通用的API就應(yīng)運而生了. 也就是現(xiàn)在的ODBC(Open Database Connectivity), ODBC是人們在創(chuàng)建通用API的早期產(chǎn)物. 有許多種數(shù)據(jù)庫遵從了這種標(biāo)準(zhǔn),被稱為ODBC兼容的數(shù)據(jù)庫.

OLEDB(對象鏈接和嵌入數(shù)據(jù)庫)位于ODBC層與應(yīng)用程序之間. 在你的ASP頁面里,ADO是位于OLEDB之上的"應(yīng)用程序". 你的ADO調(diào)用先被送到OLEDB,然后再交由ODBC處理. 你可以直接連接到OLEDB層,如果你這么做了,你將看到服務(wù)器端游標(biāo)(recordset的缺省的游標(biāo),也是最常用的游標(biāo))性能的提升.

參考 http://www.connectionstrings.com/

用odbc連接數(shù)據(jù)庫:

odbc中提供三種dsn,它們的區(qū)別很簡單:用戶dsn只能用于本用戶。系統(tǒng)dsn和文件dsn的區(qū)別只在于連接信息的存放位置不同:系統(tǒng)dsn存放在odbc儲存區(qū)里,而文件dsn則放在一個文本文件中。
它們的創(chuàng)建方法就不說了。

在asp中使用它們時,寫法如下:

1.sql server:

用系統(tǒng)dsn: connstr="DSN=dsnname; UID=xx; PWD=xxx;DATABASE=dbname"
用文件dsn:connstr="FILEDSN=xx;UID=xx; PWD=xxx;DATABASE=dbname"
還可以用連接字符串(從而不用再建立dsn):
connstr="DRIVER={SQLSERVER};SERVER=servername;UID=xx;PWD=xxx"

2.access:

用系統(tǒng)dsn: connstr="DSN=dsnname"
(或者為:connstr="DSN=dsnname;UID=xx;PWD=xxx")
用文件dsn:connstr="FILEDSN=xx"
還可以用連接字符串(從而不用再建立dsn):
connstr="DRIVER={MicrosoftAccess Driver};DBQ=d:\abc\abc.mdb"

用oledb連接數(shù)據(jù)庫:

1.sql server:
connstr="PROVIDER=SQLOLEDB;
DATASOURCE=servername;UID=xx;PWD=xxx;DATABASE=dbname"

2.access:
connstr="PROVICER=MICROSOFT.JET.OLEDB.4.0;
DATASOURCE=c:\abc\abc.mdb"

值得注意的是,OLE DB對ODBC的兼容性,允許OLE DB訪問現(xiàn)有的ODBC數(shù)據(jù)源。其優(yōu)點很明顯,由于ODBC相對OLE DB來說使用得更為普遍,因此可以獲得的ODBC驅(qū)動程序相應(yīng)地要比OLE DB的要多。這樣不一定要得到OLE DB的驅(qū)動程序,就可以立即訪問原有的數(shù)據(jù)系統(tǒng)。
提供者位于OLE DB層,而驅(qū)動程序位于ODBC層。如果想使用一個ODBC數(shù)據(jù)源,需要使用針對ODBC的OLE DB提供者,它會接著使用相應(yīng)的ODBC驅(qū)動程序。如果不需要使用ODBC數(shù)據(jù)源,那么可以使用相應(yīng)的OLE DB提供者,這些通常稱為本地提供者(native provider)。
可以清楚地看出使用ODBC提供者意味著需要一個額外的層。因此,當(dāng)訪問相同的數(shù)據(jù)時,針對ODBC的OLE DB提供者可能會比本地的OLEDB提供者的速度慢一些。

ODBC,OLEDB連接字符串詳解

SQL Server

u ODBC
1. Standard Security:
"Driver={SQLServer};Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd;"
2. Trusted connection:
"Driver={SQLServer};Server=Aron1;Database=pubs;Trusted_Connection=yes;"
3. Prompt for username and password:
oConn.Properties("Prompt")= adPromptAlways
oConn.Open"Driver={SQL Server};Server=Aron1;DataBase=pubs;"

u OLE DB, OleDbConnection (.NET)

1. Standard Security:
"Provider=sqloledb;DataSource=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;"
2. Trusted Connection:
"Provider=sqloledb;DataSource=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;"
(useserverName\instanceName as Data Source to use an specifik SQLServer instance,only SQLServer2000)
3. Prompt for username and password:
oConn.Provider= "sqloledb"
oConn.Properties("Prompt")= adPromptAlways
oConn.Open"Data Source=Aron1;Initial Catalog=pubs;"
4. Connect via an IP address:
"Provider=sqloledb;DataSource=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;UserID=sa;Password=asdasd;"
(DBMSSOCN=TCP/IPinstead of Named Pipes, at the end of the Data Source is the port to use (1433is the default))

u SqlConnection (.NET)

1. Standard Security:
"DataSource=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;"
- or -
"Server=Aron1;Database=pubs;UserID=sa;Password=asdasd;Trusted_Connection=False"
(bothconnection strings produces the same result)
2. Trusted Connection:
"DataSource=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;"
- or -
"Server=Aron1;Database=pubs;Trusted_Connection=True;"
(bothconnection strings produces the same result)
(useserverName\instanceName as Data Source to use an specifik SQLServer instance,only SQLServer2000)
3. Connect via an IP address:
"DataSource=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;UserID=sa;Password=asdasd;"
(DBMSSOCN=TCP/IPinstead of Named Pipes, at the end of the Data Source is the port to use (1433is the default))
您可能感興趣的文章:
  • Turbolinux-7-Server拓林思服務(wù)器版光盤安裝過程詳細(xì)圖解
  • Moon_LServer Linux下一鍵搭建Apache+PHP+MySQL+Zend+PHPMyAdmin+GD庫的軟件
  • Red Hat 紅帽企業(yè)Linux 5 SERVER 正式版 迅雷下載地址
  • 關(guān)于php連接mssql:pdo odbc sql server
  • mysql odbc字符集設(shè)置(中文顯示亂碼)
  • ADO.NET 連接數(shù)據(jù)庫字符串小結(jié)(Oracle、SqlServer、Access、ODBC)
  • LVS(Linux Virtual Server)Linux 虛擬服務(wù)器介紹及配置(負(fù)載均衡系統(tǒng))
  • ADO,OLEDB,ODBC,DAO,RDO的區(qū)別說明
  • php5.3中連接sqlserver2000的兩種方法(com與ODBC)
  • linux mysql 報錯:MYSQL:The server quit without updating PID file
  • php常用ODBC函數(shù)集(詳細(xì))
  • Linux編譯mssql擴展使用php連接sqlserver2008的使用步驟
  • Linux下用dnsmasq做dns cache server的配置方法
  • linux下如何配置SQLSERVER ODBC

標(biāo)簽:商洛 濟源 吉林 撫順 玉溪 瀘州 廣西 文山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《OLEDB和ODBC的區(qū)別(優(yōu)缺點)》,本文關(guān)鍵詞  OLEDB,和,ODBC,的,區(qū)別,優(yōu)缺點,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《OLEDB和ODBC的區(qū)別(優(yōu)缺點)》相關(guān)的同類信息!
  • 本頁收集關(guān)于OLEDB和ODBC的區(qū)別(優(yōu)缺點)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    鄯善县| 滨海县| 娱乐| 鱼台县| 武功县| 昌吉市| 连平县| 临沭县| 保德县| 敦煌市| 金坛市| 潞西市| 常山县| 施甸县| 平泉县| 那坡县| 吴旗县| 兰坪| 江华| 翁牛特旗| 洛阳市| 留坝县| 通州区| 濉溪县| 常山县| 佳木斯市| 莱西市| 宿松县| 陵川县| 永仁县| 临武县| 岢岚县| 凌云县| 金门县| 伊通| 鹤壁市| 肥乡县| 桓台县| 汉寿县| 南开区| 大丰市|