【问题标题】:"Table already exists" error using Zumero sync in a Xamarin.Forms application在 Xamarin.Forms 应用程序中使用 Zumero 同步时出现“表已存在”错误
【发布时间】:2016-01-29 05:46:47
【问题描述】:

当我在 Xamarin Android 播放器中运行该应用程序时,它运行良好,但是当我在设备上运行时,我收到以下错误:

错误 1 ​​(sqlite): CREATE TABLE main."custScanned" (z_rv INTEGER NULL UNIQUE REFERENCES "z$rv$1483152329"(z_rv) DEFERRABLE INITIALLY DEFERRED, "Id" integer primary key NOT NULL, "custNumber" text COLLATE NOCASE , "scannedDate" 文本 COLLATE NOCASE ): 表 "custScanned" 已经存在 jni/../../../../..//build/android/core/jni/../../../../src/core/sg/sg_sqlite.c:304 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:558 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:2219 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:3889 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:4382 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:7703 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:7763 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:8871 jni/../../../../..//build/android/core/jni/../../../../src/core/client/zum_sync.c:9227

当我查看设备上的 LogCat 时,它说表 custScanned 已经存在。我认为这就是同步的重点:将数据发送到服务器并将数据从服务器添加到设备上的现有表中。

【问题讨论】:

    标签: xamarin xamarin.forms zumero


    【解决方案1】:

    我在 Zumero 支持的帮助下解决了这个问题。我在启动时创建了表,这就是发生错误的原因。

    【讨论】:

      【解决方案2】:

      虽然 Zumero 确实希望将您的客户端表与其服务器端对应表同步,但它希望在初始同步时自行创建这些表。所以(正如你所发现的)你需要从一个空的 SQLite 数据库开始,或者从一个不存在的数据库开始 — Zumero 会在初始同步时为你创建它。据推测,Android 播放器没有有一个预先存在的 SQLite 数据库,或者至少没有这个表。

      Zumero 需要创建管家表和其他数据,并获得恰到好处的客户端模式,以便与服务器跟踪历史记录、合并更改等。如果没有这些信息,就无法协调现有数据库的结构和内容与服务器端数据。

      【讨论】:

        猜你喜欢
        • 2015-09-20
        • 2019-08-28
        • 1970-01-01
        • 2016-08-31
        • 1970-01-01
        • 2014-08-22
        • 1970-01-01
        • 2014-12-02
        • 1970-01-01
        相关资源
        最近更新 更多