RDS 程式設計模型詳述
以下是 RDS 程式設計模型的重要元素:
RDS.DataSpace
RDSServer.DataFactory
RDS.DataControl
事件
重要
從 Windows 8 和 Windows Server 2012 開始,Windows 作業系統中不再包含 RDS 伺服器元件 (請參閱 Windows 8 和 Windows Server 2012 相容性逐步指南 (英文) 以取得詳細資料)。 未來的 Windows 版本將移除 RDS 用戶端元件。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 使用 RDS 的應用程式應移轉至 WCF 資料服務。
RDS.DataSpace
用戶端應用程式必須指定要叫用的伺服器和伺服器程式。 而另一方面,您的應用程式會收到伺服器程式的參考,而且可以將該參考視作為伺服器程式本身。
RDS 物件模型的 RDS.DataSpace 物件包含這項功能。
伺服器程式以程式識別碼或 ProgID 加以指定。 伺服器會使用 ProgID 和伺服器電腦的登錄,找出要起始之實際程式的相關資訊。
RDS 會依據伺服器程式是否位於網際網路或內部網路的遠端伺服器上、伺服器是否位於區域網路,或完全不在伺服器上,而是位於本機動態連結程式庫上 (DLL),於內部加以區分。 這項區分會決定在用戶端與伺服器之間,要如何交換資訊,以及在傳回用戶端應用程式的參考類型方面,做出有形的差異。 但從您的角度來看,此區分並沒有特殊意義。 對您來說重要的是,您會收到可用的程式參考。
RDSServer.DataFactory
RDS 提供預設伺服器程式,可針對資料來源執行 SQL 查詢,並傳回 Recordset 物件,或取得 Recordset 物件並更新資料來源。
RDS 物件模型的 RDSServer.DataFactory 物件包含這項功能。
此外,這個物件具有建立空 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.DataControl ReadyState 屬性變更時,就會呼叫 onReadyStateChange 事件,因而會在非同步作業成功完成、終止或發生錯誤時,通知您。 發生錯誤時,會呼叫 onError 事件,即使在非同步作業期間發生錯誤也是一樣。
注意
Microsoft Internet Explorer 為 RDS 提供兩種額外的事件:onDataSetChanged,這表示 Recordset 正常運作,但仍在擷取資料列,而 onDataSetComplete 則表示 Recordset 已完成擷取資料列。
另請參閱
具有物件的 RDS 程式設計模型
DataControl 物件 (RDS)
DataFactory 物件 (RDSServer)
DataSpace 物件 (RDS)
RDS 案例
RDS 教學課程
RDS 使用方式與安全性