2008-11-07 59 views
18

OLEDB和ODBC有什麼區別?什麼時候使用哪一種?我如何知道我在看什麼是OLEDB驅動程序v/s是一種ODBC驅動程序?OLEDB v/s ODBC

回答

20

OLEDB和ODBC是兩種不同的數據庫API。 ODBC是一個較老的標準,實際上並不特定於Windows - 您可以獲得基於Unix的ODBC庫。 OLEDB是用於數據庫連接的基於COM的API。

如果您使用的數據庫不帶有本機OLEDB驅動程序,則有一個驅動程序用於將OLEDB包裝到OLEDB前端。 IIRC DB2/400和Sybase OLEDB驅動程序(例如)使用此方法。

Windows中的ODBC管理員只關心ODBC驅動程序。 ODBC和OLEDB都可以使用連接字符串,它們的格式略有不同。您可以從連接字符串中得知 - www.connectionstrings.com具有許多不同數據庫驅動程序的連接字符串示例。

編輯:甲骨文在每週的每一天都有驅動技術。

  • 甲骨文有native OLEDB driver調出的 'OLEDB Oracle提供 ' 或一些這樣的。如果你使用ADO(非.Net,它位於OLEDB的 ) ,這將是首選的 驅動程序。

  • 他們也有一個ODBC driver 這將是(例如)用於 從Oracle數據庫中提取 到MS-Access或與應用程序或系統不支持OLEDB有用。例如,較舊的Delphi/Oracle或Powerbuilder/Oracle應用程序可能會使用此驅動程序。

  • Oracle也有一個 Oracle專用接口,稱爲 OCI。如果您使用C語言編寫,這是最快的 界面,並且 也可以在非windows 平臺上工作,但會將您的應用程序 與Oracle相關聯。 Python的cx_Oracle等動態語言綁定往往是OCI的包裝。

  • 如果您使用的.Net你可能 使用.net提供OLEDB想ODP.Net而非 。這是由Oracle提供的 標準.Net接口庫 。

  • 有幾個JDBC drivers爲 Oracle。有一個類型2驅動程序 這是OCI的包裝和 類型4驅動程序,其原生地寫入 在Java中並通過網絡直接傳送 到 服務器。如果您使用Java,除非您有特別的理由需要類型2驅動程序,否則類型4驅動程序可能是大多數應用程序的最佳選擇(您不必安裝完整的Oracle客戶端)。

+0

因此,如果我有連接到Oracle數據庫的選項,比如從Windows系統中推薦的選項是什麼,爲什麼? – Dan 2008-11-07 08:29:05