none
在pc端產生SDF檔,identity的問題… RRS feed

  • 問題

  • 請教各位:
    我想在PC端產生SDF檔,並將SQL SERVER上的資料轉到SDF檔裡,
    我現在的作法是
    1.例用SQLCE 3.5在PC端產生SDF檔後,再下指令建立TABLE。
    2.讀取SQL SERVER上的資料,再逐筆INSERT至SDF檔裡。

    但是當我的識別欄位是IDENTITY的時候,這時候就會出錯。
    因為有多個TABLE要依靠這個欄位做關聯,所以就一定要跟SQL SERVER的資料完全符合。

    我現在想到的方法,只有取消IDENTITY屬性,之後在PDA新增資料動作的時候,自已去做識別碼的遞增。
    那不知是否還有其它的方法。



    2008年12月29日 上午 01:56

解答

所有回覆

  • 你可以玩一下 Microsoft Synchronization Service Framework for ADO.NET,它應該可以幫你解決這種同步的問題。

    http://msdn.microsoft.com/en-us/sync/default.aspx

    2008年12月29日 上午 02:41
  • HI,

     

    資料要從SQL Server傳到PDA上的SQL Server Compact 3.5, 可以在SQL Server發佈好內容, 由PDA上的SQL Server Compact 3.5去訂閱, 就不會有Identity的問題, 也不需要自己建立SDF, 再寫程式匯入, 請參考:

    http://msdn.microsoft.com/en-us/library/ms172412.aspx

     

    tihs

    2008年12月29日 上午 06:12
  • 謝謝兩位回覆…
    Microsoft Synchronization Service Framework for ADO.NET我還在試驗中…
    對我來說有點小複雜…
    在執行它的pda範例程式時, 一直出現下列的錯誤…
       System.InvalidOperationException: 產生 XML 文件時發生錯誤。 ---> 
    System.InvalidCastException: 無法將型別
    'Microsoft.Synchronization.Data.SyncSchema' 的物件轉換為型別
    'Microsoft.Synchronization.Data.SyncSchema'。
    於 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write4_SyncSchema(Object o)
    於 Microsoft.Xml.Serialization.GeneratedAssembly.SyncSchemaSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
    於 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
    --- 內部例外堆疊追蹤的結尾 ---
    於 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
    於 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces)
    於 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o)
    於 System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue)
    於 System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
    於 System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
    於 System.Web.Services.Protocols.WebServiceHandler.Invoke()

    2009年1月13日 上午 01:35