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"