共用方式為


OLE DB 提供者樣板 (C++)

OLE DB 是 Microsoft 通用資料存取策略的重要組成部分。 OLE DB 設計允許從任何資料來源存取高效能資料。 無論表格式資料是否來自資料庫,都能透過 OLE DB 檢視。 彈性提供您巨大的力量。

如 OLE DB 消費者和提供者 中所述 ,OLE DB 會使用取用者和提供者的概念。 取用者提出資料要求;提供者會將表格式格式的資料傳回給取用者。 從程式設計的觀點來看,此模型最重要的含意是提供者必須實作取用者可以進行的任何呼叫。

什麼是提供者?

OLE DB 提供者是一組 COM 物件,可提供取用者物件的介面呼叫,並將表格式中的資料從長期來源(稱為資料存放區)傳送給取用者。

提供者可以是簡單或複雜的。 提供者可以藉由實作更多介面來支援最少的功能或完整生產品質提供者。 提供者可以傳回資料表、允許用戶端判斷該資料表的格式,以及在該資料上執行作業。

每個提供者都會實作一組標準 COM 物件來處理來自用戶端的要求,標準表示任何 OLE DB 取用者都可以從任何提供者存取資料,而不論語言為何(例如 C++ 和 Basic)。

每個 COM 物件都包含數個介面,其中有些是必要介面,有些是選擇性的。 藉由實作強制介面,提供者會保證任何用戶端都應該能夠使用的最低功能層級(稱為合規性)。 提供者可以實作選擇性介面來提供其他功能。 OLE DB 提供者範本架構 會詳細說明這些介面。 用戶端應該一律呼叫 QueryInterface 來判斷提供者是否支援指定的介面。

OLE DB 規格層級支援

OLE DB 提供者範本支援 OLE DB 2.7 版規格。 使用 OLE DB 提供者範本,您可以實作層級 0 相容提供者。 例如,此 Provider 範例會使用範本來實作執行 DOS DIR 命令以查詢檔案系統的非 SQL (MS-DOS) 命令伺服器。 此 Provider 範例會傳回資料列集中的目錄資訊,這是傳回表格式資料的標準 OLE DB 機制。

OLE DB 範本支援的最簡單提供者類型是不含命令的唯讀提供者。 也支援具有命令的提供者,書簽和讀取/寫入功能也一樣。 您可以藉由撰寫其他程式碼來實作讀取/寫入提供者。 目前版本不支援動態資料列集和交易,但您可以視需要新增它們。

何時需要建立 OLE DB 提供者?

您不一定需要建立自己的提供者;Microsoft 在 Visual C++ 的 [ 資料連結屬性 ] 對話方塊中提供數個預先封裝的標準提供者。 建立 OLE DB 提供者的主要原因,是利用通用資料存取策略。 這樣做的一些優點包括:

  • 透過 C++、Basic 和 Visual Basic Scripting Edition 等任何語言存取資料。 它可讓組織中的不同程式設計人員以相同方式存取相同的資料,而不論其使用的語言為何。

  • 將資料開啟至其他資料來源,例如 SQL Server、Excel 和 Access。 如果您想要在不同的格式之間傳輸資料,這非常有用。

  • 參與跨資料來源 (異質) 作業。 這可以是資料倉儲的有效方式。 藉由使用 OLE DB 提供者,您可以保留其原生格式的資料,仍然可以在簡單的作業中存取資料。

  • 將其他功能新增至您的資料,例如查詢處理。

  • 藉由控制資料的操作方式,提高存取資料的效能。

  • 增強強固性。 如果您有只有一個程式設計人員可以存取的專屬資料格式,您就會面臨風險。 您可以使用 OLE DB 提供者,向所有程式設計人員開啟該專屬格式。

唯讀和可更新的提供者

提供者在複雜度和功能上可能會有很大的差異。 將提供者分類為唯讀提供者和可更新的提供者很有用:

  • Visual C++ 6.0 僅支援唯讀提供者。 建立 OLE DB 提供者 會討論如何建立唯讀提供者。
  • Visual C++ 支援可更新的提供者,可更新資料存放區(寫入至)。 如需可更新提供者的相關資訊,請參閱 建立可更新的提供者 ; UpdatePV 範例是可更新提供者的範例。

如需詳細資訊,請參閱

另請參閱

資料存取
OLE DB SDK 文件
OLE DB 設計人員參考