OLE DB

接口

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"