2011-11-14 108 views
0

我通過WCF使用同步SQL Server Express的,我的服務器和客戶端的SQL Server Express 2008,(發展我使用的SQL Express的一個實例)同步框架BulkInsertCommand爲表上

我加同步過濾器的服務器模板並根據此模板創建我的所有範圍。客戶端和服務器端的表結構相同。當我首先啓動我的應用程序時,所有系統表SP,觸發器都創建在兩邊。

但在同步期間(localProvider是服務器,RemoteProvider客戶端)

SyncOrchestrator orchestrator = new SyncOrchestrator 
      { 
       LocalProvider = localProvider, 
       RemoteProvider = remoteProvider, 
       Direction = SyncDirectionOrder.Download 
      }; 

過程我得到下一個異常:

{「未能執行命令 'BulkInsertCommand' 表 'MySyncTable';請確保命令語法正確。「}

Inner Excepti on:

{「將同步後的nvarchar值'轉換爲數據類型位時轉換失敗。\ r \ n表值參數\」@changeTable \「的數據不符合表類型的參數。\ r \ n該語句已終止。「}

對我來說這是看起來像我有不同的表結構,我看BulkInsertCommand在服務器端,並沒有發現什麼不妥,

它可能與過濾器範圍有關或者爲什麼sync會產生thise錯誤?

謝謝。

回答

1

您以前是否在同一組表上設置了不同的作用域?

您是否手動清理了Sync Framework生成的對象,而不是使用deprovisioning API?

如果您對以上任何一種方法做過,則可能是使用了過時的UDT。

如果您沒有在數據庫中定義任何其他範圍,請嘗試DeprovisionStore取消配置整個數據庫並刪除所有同步框架創建的對象。

如果您有其他範圍,則使用DeprovisionScope取消配置與問題表相關聯的所有範圍。

0

我用DeprovisionStore清除同步信息並重新創建範圍,現在所有的工作....謝謝。