將資料從用戶端發送到伺服器
將資料從用戶端發送到伺服器,包括將變更從 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 傳播回 SQL Server 資料表。如需詳細資訊,請參閱「發送方法」。
應用程式必須已建立本機 SQL Server Compact Edition 資料表,方法是在追蹤選項開啟時呼叫 Pull 方法。
以遠端資料存取 (RDA) 追蹤的 Pull 及 Push 方法使用開放並行控制,SQL Server 不會將提取記錄保持鎖定。當應用程式呼叫 Push 時,本機 SQL Server Compact Edition 資料庫的變更將無條件套用到 SQL Server 資料庫。如此可能使 SQL Server 資料庫的其他使用者所做的變更遺失。
批次處理
RDA_BATCHOPTION 指定 SQL Server Compact Edition 是否應該批次處理要傳送到 SQL Server 資料表的變更。預設值為 BATCHINGOFF,其中的變更 (插入、更新及刪除) 會以個別交易的方式套用到 SQL Server 資料表。每一個交易與其他交易成功與否無關。BATCHINGON 會指定將所有的變更以單一交易的方式傳送。在此狀況下,所有的變更都必須成功,此次交易才會成功。如果某項變更失敗,整個交易就會失敗,而且沒有任何變更會套用到 SQL Server 資料表。雖然 BATCHINGON 並非預設選項,某些開發人員可能發現它是建立衝突解決程式碼時較易使用的機制。如需詳細資訊,請參閱<RDA 衝突偵測和報告>。
BATCHINGON 與 BATCHINGOFF 都會將所有的錯誤傳回到錯誤資料表,不只是傳回第一個發生的錯誤而已。例如,如果指定 BATCHINGON,並且在 5 項變更中有 3 項失敗,就不會套用任何變更,而且這 3 項失敗都會儲存在錯誤資料表中。如果指定 BATCHINGOFF,相同的 3 項失敗就會儲存在錯誤資料表中,而其他 2 項變更則會套用到 SQL Server 資料表。
非批次交易
在非批次交易期間 (BATCHINGOFF 選項),會在資料列層級偵測衝突。衝突資料列會傳回應用程式,並儲存在指定的錯誤資料表中。例如,若應用程式嘗試將資料列發送到無效的 SQL Server,該資料列會傳回應用程式,並與說明衝突的錯誤訊息一併儲存到錯誤資料表中。
當衝突資料列傳回錯誤資料表時,該資料列會從裝置上的原始資料庫中移除。您必須將應用程式設計為允許使用者更正衝突資料,並將衝突資料合併回以 Windows Mobile 為基礎的原始資料庫。
批次交易
RDA 也支援批次發送 (BATCHINGON 選項),要求所有資料列都成功才處理整個發送。如果某一資料列失敗,整個發送交易就會失敗,不會更新任何資料。衝突資料列會複製到錯誤資料表。與非批次發送不同的是,以 Windows Mobile 為基礎的原始資料庫會維持完整。您必須將應用程式設計為允許使用者更正衝突資料,並將其合併回以 Windows Mobile 為基礎的原始資料庫。在複製衝突資料列前,會自動清除錯誤資料表,因此只有最後一次發送作業的衝突會存在於資料表中。