OLE DBObject Linking and Embedding, Database,對象鏈接嵌入數據庫,有時亦寫作OLEDBOLE-DB)是微軟為以統一方式訪問不同類型的數據存儲設計的一種應用程序接口,是一組用組件對象模型(COM)實現的接口,而與對象連接與嵌入(OLE)無關。它被設計成為ODBC的一種高級替代者和繼承者,把它的功能擴展到支持更多種類的非關係型數據庫,例如可能不支持SQL對象數據庫和電子表格(如Excel)。

OLE DB用一組抽象概念(包括數據源、會話、命令和行集)將數據的存儲從需要訪問數據的應用中分離出來。這是因為不同的應用需要訪問不同數據類型和數據源,但是並不需要了解具體如何使用特定技術的方法訪問這些數據。OLE DB在概念上分為了消費者提供者。消費者是那些需要訪問數據的應用程序,提供者是實現了那些接口並將數據提供給消費者的軟件組件。OLE DB是微軟數據訪問組件(MDAC)的一部分MDAC是一組微軟技術,以框架的方式相互作用,為程序員開發訪問幾乎任何數據存儲提供了一個統一併全面的方法。OLE DB的提供者可以用於提供像文本文件和電子表格一樣簡單的數據存儲的訪問,也可以提供像OracleSQL ServerSybase ASE一樣複雜的數據庫的訪問。OLE DB同樣可以提供對層次類型的數據存儲(如電子郵件系統)的訪問。

另一方面,由於不同的數據存儲技術可能具有不同的能力,OLE DB提供者不需要實現OLE DB中每一個接口。通過使用COM對象實現可用的能力 - OLE DB提供者將把數據存儲技術的功能映射到特定的COM接口上。當某種接口提供的能力在所使用的數據庫技術中不適用時,微軟稱該接口的可用性為"provider-specific"。同時,提供者也可以擴大數據存儲的能力 - 這些能力在微軟的用語中被稱為services

常見的OLE DB Provider

編輯
  • SQL Server OLE DB Provider,以SQL Server為主的OLE DB資料提供者。
  • Microsoft Jet OLE DB Provider,以Access, Excel, dBase等檔案型資料庫為主的OLE DB資料提供者。
  • OLE DB Provider for Internet Publishing,支援WebDAV(Web Distributed Authoring and Versioning)發布的OLE DB資料提供者。
  • OLE DB Provider for ODBC,呼叫ODBC的OLE DB資料提供者。
  • OLE DB Provider for Oracle Client,呼叫Oracle資料庫的OLE DB資料提供者,通常由Oracle原廠提供。
  • OLE DB Provider for Indexing Services,支援Microsoft Indexing Service索引庫的OLE DB資料提供者。
  • OLE DB Provider for Active Directory Services,支援Active Directory目錄資料存取的OLE DB資料提供者。
  • Microsoft OLE DB Persistence Provider,將資料集(Recordset)寫入檔案或由檔案讀取的OLE DB資料提供者。

OLE DB Provider工具提供者

編輯
  • Microsoft Data Shaping Service for OLE DB,由指定的OLE DB資料來源組成階層化資料集的工具。
  • Microsoft OLE DB Remoting Provider:可呼叫在遠端電腦中的OLE DB資料來源的工具。
  • Microsoft Cursor Service for OLE DB:在OLE DB來源中提供游標巡覽服務的工具。

OLE DB產品提供者

編輯

OLE DB的連接串的示例

編輯

SQL Server

connstr="PROVIDER=SQLOLEDB;DATA SOURCE=servername;UID=xyz;PWD=xxx;DATABASE=dbname"

Microsoft Access:

connstr="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=d:\abc\defg.mdb"