共用方式為


將資料從用戶端發送到伺服器

將資料從用戶端發送到伺服器,包括將變更從 Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) 傳播回 SQL Server 資料表。如需詳細資訊,請參閱「發送方法」。

應用程式必須已建立本機 SQL Server Compact 3.5 資料表,方法是在追蹤選項開啟時呼叫 Pull 方法。

以遠端資料存取 (RDA) 追蹤的 PullPush 方法使用開放並行控制,SQL Server 不會將提取記錄保持鎖定。當應用程式呼叫 Push 時,本機 SQL Server Compact 3.5 資料庫的變更將無條件套用到 SQL Server 資料庫。如此可能使 SQL Server 資料庫的其他使用者所做的變更遺失。

批次處理

RDA_BATCHOPTION 指定 SQL Server Compact 3.5 是否應該批次處理要傳送到 SQL Server 資料表的變更。預設值為 BATCHINGOFF,其中的變更 (插入、更新及刪除) 會以個別交易的方式套用到 SQL Server 資料表。每一個交易與其他交易成功與否無關。BATCHINGON 會指定將所有的變更以單一交易的方式傳送。在此狀況下,所有的變更都必須成功,此次交易才會成功。如果某項變更失敗,整個交易就會失敗,而且沒有任何變更會套用到 SQL Server 資料表。雖然 BATCHINGON 並非預設選項,某些開發人員可能發現它是建立衝突解決程式碼時較易使用的機制。如需詳細資訊,請參閱<RDA 衝突偵測和報告>。

BATCHINGONBATCHINGOFF 都會將所有的錯誤傳回到錯誤資料表,不只是傳回第一個發生的錯誤而已。例如,如果指定 BATCHINGON,並且在 5 項變更中有 3 項失敗,就不會套用任何變更,而且這 3 項失敗都會儲存在錯誤資料表中。如果指定 BATCHINGOFF,相同的 3 項失敗就會儲存在錯誤資料表中,而其他 2 項變更則會套用到 SQL Server 資料表。

非批次交易

在非批次交易期間 (BATCHINGOFF 選項),會在資料列層級偵測衝突。衝突資料列會傳回應用程式,並儲存在指定的錯誤資料表中。例如,若應用程式嘗試將資料列發送到無效的 SQL Server,該資料列會傳回應用程式,並與說明衝突的錯誤訊息一併儲存到錯誤資料表中。

當衝突資料列傳回錯誤資料表時,該資料列會從裝置上的原始資料庫中移除。您必須將應用程式設計為允許使用者更正衝突資料,並將衝突資料合併回以 Windows Mobile 為基礎的原始資料庫。

批次交易

RDA 也支援批次發送 (BATCHINGON 選項),要求所有資料列都成功才處理整個發送。如果某一資料列失敗,整個發送交易就會失敗,不會更新任何資料。衝突資料列會複製到錯誤資料表。與非批次發送不同的是,以 Windows Mobile 為基礎的原始資料庫會維持完整。您必須將應用程式設計為允許使用者更正衝突資料,並將其合併回以 Windows Mobile 為基礎的原始資料庫。在複製衝突資料列前,會自動清除錯誤資料表,因此只有最後一次發送作業的衝突會存在於資料表中。

另請參閱

其他資源

如何:使用 RDA 物件發送資料 (以程式設計的方式)

說明及資訊

取得協助 (SQL Server Compact 3.5 Service Pack 1)