OLE DB
OLE DB(Object Linking and Embedding, Database,對象鏈接嵌入數據庫,有時亦寫作OLEDB或OLE-DB)是微軟為以統一方式訪問不同類型的數據存儲設計的一種應用程序接口,是一組用組件對象模型(COM)實現的接口,而與對象連接與嵌入(OLE)無關。它被設計成為ODBC的一種高級替代者和繼承者,把它的功能擴展到支持更多種類的非關係型數據庫,例如可能不支持SQL的對象數據庫和電子表格(如Excel)。
OLE DB用一組抽象概念(包括數據源、會話、命令和行集)將數據的存儲從需要訪問數據的應用中分離出來。這是因為不同的應用需要訪問不同數據類型和數據源,但是並不需要了解具體如何使用特定技術的方法訪問這些數據。OLE DB在概念上分為了消費者和提供者。消費者是那些需要訪問數據的應用程序,提供者是實現了那些接口並將數據提供給消費者的軟件組件。OLE DB是微軟數據訪問組件(MDAC)的一部分。MDAC是一組微軟技術,以框架的方式相互作用,為程序員開發訪問幾乎任何數據存儲提供了一個統一併全面的方法。OLE DB的提供者可以用於提供像文本文件和電子表格一樣簡單的數據存儲的訪問,也可以提供像Oracle、SQL Server和Sybase 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產品提供者
編輯- Microsoft(頁面存檔備份,存於網際網路檔案館)隨MDAC和JET工具包推出了一些OLE DB提供者
- Simba技術公司(頁面存檔備份,存於網際網路檔案館)推出了SimbaProvider,一個軟件開發套件(SDK),用於建造自定義OLE提供者,通過OLAP訪問多維數據庫和星形數據庫。
- OpenLink Software為許多SQL數據庫管理系統推出OLE DB提供者,也提供了OLE DB到ODBC和JDBC的橋接。
- SQLSummit.com: OLE DB提供者目錄(頁面存檔備份,存於網際網路檔案館)
- 支持Interbase和Firebird的OLE DB提供者(支持14種數據庫類型,有免費和高級兩種版本)(頁面存檔備份,存於網際網路檔案館)
OLE DB的連接串的示例
編輯connstr="PROVIDER=SQLOLEDB;DATA SOURCE=servername;UID=xyz;PWD=xxx;DATABASE=dbname"
connstr="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=d:\abc\defg.mdb"