RDS 程式設計模型詳細數據
以下是 RDS 程式設計模型的重要元素:
RDS.DataSpace
RDSServer.DataFactory
RDS.DataControl
事件
重要
從 Windows 8 和 Windows Server 2012 開始,RDS 伺服器元件已不再包含在 Windows 作業系統中(如需詳細資訊,請參閱 Windows 8 和 Windows Server 2012 兼容性 Cookbook)。 RDS 用戶端元件將在未來的 Windows 版本中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。 使用 RDS 的應用程式應該移至 WCF Data Service。
RDS.DataSpace
用戶端應用程式必須指定要叫用的伺服器和伺服器程式。 作為回應,您的應用程式會收到伺服器程式的一個參考,並且可以將該參考當作伺服器程式本身來使用。
RDS 物件模型透過 RDS.DataSpace 物件來體現這項功能。
伺服器程式是以程式識別子指定,或 ProgID。 伺服器會使用 ProgID 和伺服器電腦的登錄,找出要起始之實際程式的相關信息。
RDS 會根據伺服器程式的不同位置進行內部分類:如果伺服器程式位於因特網或內部網路上的遠端伺服器;位於局域網路上的伺服器;或者不在伺服器上,而是在本機的動態連結庫(DLL)上。 這項區別決定客戶端與伺服器之間資訊交換的方式,並在傳回給用戶端應用程式的參考類型上產生明顯差異。 然而,從您的觀點來看,這種區別沒有特殊意義。 重要的是您會收到可使用的程序參考。
RDSServer.DataFactory
RDS 提供預設伺服器程式,可以針對數據源執行 SQL 查詢,並傳回 Recordset 物件,或取得 Recordset 物件並更新數據源。
RDS 物件模型會使用 RDSServer.DataFactory 對象來體現這項功能。
此外,這個物件有一個方法來建立空的 recordset Recordset 物件,而您可以透過程式設計方式填滿該物件(CreateRecordset),還有另一個方法可將 Recordset 物件轉換成文字字元串,以建置網頁(ConvertToString)。
使用 ADO,您可以使用 DataFactory 處理程式以及包含連線、命令和安全性參數的自定義檔案,來覆寫 RDSServer.DataFactory 的一些標準連線和命令行為。
伺服器程式有時稱為 商業物件。 您可以撰寫自己的自定義商務物件,以執行複雜的數據存取、有效性檢查等等。 即使撰寫自定義商務物件,您也可以建立 RDSServer.DataFactory 對象的實例,並使用其一些方法來完成您自己的工作。
RDS·DataControl
RDS 提供一種方法來結合 RDS.DataSpace 和 RDSServer.DataFactory的功能,並讓視覺控制元件能夠輕鬆地使用由數據來源查詢所返回的 Recordset 物件。 針對最常見的情況,RDS 會嘗試盡最大努力自動存取伺服器上的資訊,並將其顯示在視覺控件中。
RDS 物件模型通過 RDS.DataControl 物件來具體體現這項功能。
RDS.DataControl 有兩個層面。 關於數據源的其中一個層面。 如果您使用 RDS.DataControl的 Connect 和 SQL 屬性來設定命令和連線資訊,它會自動使用 RDS.DataSpace 建立對預設的 RDSServer.DataFactory 對象的參考。 然後,RDSServer.DataFactory 會使用 Connect 屬性值連線至數據源、使用 SQL 屬性值,從數據源取得 Recordset,並將 Recordset 物件傳回至 RDS。DataControl。
第二個層面涉及在視覺控件中顯示傳回的 Recordset 資訊。 您可以將視覺控件與 RDS.DataControl 進行繫結,從而取得相關聯的 Recordset 物件中的資訊,並在 Microsoft Internet Explorer 的網頁上顯示查詢結果。 每個 RDS.DataControl 物件會將一個 Recordset 物件(其代表單一查詢的結果)系結至一或多個視覺控制項(例如文本框、下拉式方塊、網格控制等)。 每個頁面上可能有多個 RDS.DataControl 物件。 每個 RDS。DataControl 物件可以連接到不同的數據源,並包含個別查詢的結果。
RDS.DataControl 物件也有它自己的方法來巡覽、排序及篩選相關聯的 Recordset 物件的數據列。 這些方法類似,但與 ADO Recordset 物件上的方法不同。
事件
RDS 支援兩個自己的事件,這與 ADO 事件模型無關。 每當 RDS.DataControlReadyState 屬性變更時,就會呼叫 onReadyStateChange 事件,因此在異步操作成功完成、終止或發生錯誤時通知您。 每當發生錯誤時,即使在異步操作期間,onError 事件也會被呼叫。
注意
Microsoft Internet Explorer 會為 RDS 提供兩個額外的事件:onDataSetChanged,這表示 Recordset 正常運作,但仍會擷取數據列,onDataSetComplete,這表示 Recordset 已完成擷取數據列。
另請參閱
使用物件 RDS 程式設計模型
資料控制物件(RDS)
DataFactory 物件 (RDSServer)
DataSpace 物件(RDS)
RDS 情境
RDS 教學課程
RDS 使用方式和安全性