共用方式為


Microsoft OLE DB 遠端提供者概觀

Microsoft OLE DB 遠端提供者可讓用戶端電腦上的本機使用者叫用遠端電腦上的數據提供者。 請像遠端電腦的本機使用者一樣指定遠端電腦的資料提供者參數。 然後指定遠端提供者用來存取遠端電腦的參數。 然後,您可以存取遠端計算機,就像您是本機用戶一樣。

重要

從 Windows 8 和 Windows Server 2012 開始,RDS 伺服器元件已不再包含在 Windows 作業系統中(如需詳細資訊,請參閱 Windows 8 和 Windows Server 2012 兼容性 Cookbook)。 RDS 用戶端元件將在未來的 Windows 版本中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。 使用 RDS 的應用程式應該移至 WCF Data Service

提供者關鍵字

若要叫用 OLE DB 遠端提供者,請在連接字串中指定下列關鍵詞和值。 (請注意提供者名稱中的空白空間。

"Provider=MS Remote"

其他關鍵詞

叫用此服務提供者時,下列其他關鍵詞是相關的。

關鍵詞 描述
數據源 指定遠端數據來源的名稱。 它會傳遞至 OLE DB 遠端提供者進行處理。

這個關鍵詞相當於 RDS.DataControl 物件的 Connect 屬性。

動態屬性

叫用此服務提供者時,下列動態屬性會新增至 Connection 物件的 Properties 集合。

動態屬性名稱 描述
DFMode 顯示 DataFactory 模式。 字串,指定伺服器上所需 DataFactory 物件的版本。 開啟連接以要求特定版本的 DataFactory之前,請先設定此屬性。 如果要求的版本無法使用,將會嘗試使用上述版本。 如果沒有先前的版本,就會發生錯誤。 如果 DFMode 小於可用版本,則會發生錯誤。 建立連接之後,這個屬性是唯讀的。

可以是下列其中一個有效的字串值:

- “25”-Version 2.5 (預設值)
- “21”-Version 2.1
- “20”-Version 2.0
- “15”-Version 1.5
命令屬性 指出值,這些值將會新增至 MS 遠端提供者傳送至伺服器之命令 (rowset) 屬性的字串。 此字串的預設值為 vt_empty。
目前的 DFMode 指出伺服器上 DataFactory 的實際版本號碼。 請檢查此屬性,以查看在 DFMode 屬性中所要求的版本是否已被遵循。

可以是下列其中一個有效的 Long 整數值:

- 25-版本 2.5(預設值)
- 21-Version 2.1
- 20-Version 2.0
- 15-Version 1.5

使用 MSRemote 提供者時,將 “DFMode=20;” 新增至連接字串,可以在更新數據時改善伺服器的效能。 使用此設定,伺服器上的 RDSServer.DataFactory 物件會使用較不密集的資源模式。 不過,此設定中無法使用下列功能:

- 使用參數化查詢。
- 在呼叫 Execute 方法之前取得參數或數據行資訊。
- 將 Transact Updates 設定為 True
- 取得列狀態。
- 呼叫 Resync 方法。
- 透過 Update Resync 屬性(明確或自動)進行重新整理。
- 設定 CommandRecordset 屬性。
- 使用 adCmdTableDirect
處理程式 指出伺服器端自定義程式(或處理程式)的名稱,此程式會擴充 RDSServer.DataFactory的功能,以及處理程式所使用的任何參數,全都以逗號 (“,”) 分隔。 字串 值。
因特網逾時 表示等候要求往返伺服器的最大毫秒數。 (預設值為 5 分鐘。
遠端提供者 指出遠端伺服器上要使用的資料提供者名稱。
遠端伺服器 指出此連線要使用的伺服器名稱和通訊協定。 此屬性相當於 RDS.DataControl 物件 Server 屬性。
交易更新 當設定為 True時,這個值表示當 UpdateBatch 在伺服器上執行時,它會在交易內完成。 這個布林動態屬性的預設值為 false

您也可以藉由在連接字串中指定其名稱做為關鍵詞,來設定可寫入的動態屬性。 例如,藉由指定下列命令,將 因特網逾時 動態屬性設定為五秒:

Dim cn as New ADODB.Connection
cn.Open "Provider=MS Remote;Internet Timeout=5000"

您也可以將動態屬性的名稱指定為 Properties 屬性的索引,來設定或擷取動態屬性。 下列範例示範如何取得和列印 因特網逾時 動態屬性的目前值,然後設定新的值:

Debug.Print cn.Properties("Internet Timeout")
cn.Properties("Internet Timeout") = 5000

備註

在 ADO 2.0 中,OLE DB 遠端提供者只能在 Recordset 物件的 開啟 方法的 ActiveConnection 參數中指定。 從 ADO 2.1 開始,可以在 Connection 物件的 ConnectionString 參數中指定提供者,也可以在 Open 方法中使用。

RDS.DataControl 物件的對等項目中,SQL 屬性無法取得。 Recordset 物件使用 Open 方法來改用 Source 參數。

注意 指定 “...;Remote Provider=MS Remote;...” 會建立四層情境。 超過三層的案例尚未經過測試,因此不應需要。

此範例會在名為 YourServer 伺服器上 Pubs 資料庫的 Authors 資料表上執行查詢。 遠端數據源和遠端伺服器的名稱是在 Connection 物件的 Open 方法中提供,而且 SQL 查詢是在 Recordset 物件的 Open 方法中指定。 Recordset 物件會傳回、編輯及用來更新數據源。

Dim rs as New ADODB.Recordset
Dim cn as New ADODB.Connection
cn.Open  "Provider=MS Remote;Data Source=pubs;" & _
         "Remote Server=https://YourServer"
rs.Open "SELECT * FROM authors", cn
...                'Edit the recordset
rs.UpdateBatch     'Equivalent of RDS SubmitChanges
...

另請參閱

OLE DB 遠端提供者 概觀