【问题标题】:SQLite 3: Mass Data Load Issue: Error 14 Database Not FoundSQLite 3:海量数据加载问题:错误 14 未找到数据库
【发布时间】:2010-10-04 00:54:01
【问题描述】:

我有一个 iPhone 应用程序,它是一个数据加载工具,用于使用将在单独的应用程序中提供的数据预填充数据库。当我启动程序时,我正在从 XML 文件中读取数据并将记录插入到数据库中。

每次我点击列表中的第 247 条记录时,数据库都会返回错误 14 database not found。如果我停止程序,从刚刚插入的 XML 文件中删除 247 个条目,然后我再次重新启动程序......同样的事情会发生。接下来的 247 条记录将被插入,然后失败并出现错误 14。

我有超过 30,000 条记录要加载。一次加载这 247 条记录并不是一个好的选择。

有什么想法吗?

【问题讨论】:

  • 我在这个问题上取得了一些进展。我尝试每 225 条记录关闭一次数据库,但没有帮助。但是,如果我在每次插入后关闭它,它就会一直嗡嗡作响。我正在使用 FMDB 包装器......也许我没有正确使用它。但解决方法目前看来不错,因为这是一次性使用

标签: iphone sql sqlite


【解决方案1】:

DB2 在其 IMPORT 和 LOAD 命令中具有允许提交级别的功能。这可能不是最好的答案,但请查看文档以查看您是否有办法每 200 行左右提交一次。这样就可以免提了。

【讨论】:

    【解决方案2】:

    您如何管理交易?您可能不想在单个块中插入所有内容,但也不想将每条记录添加到单独的块中。

    【讨论】:

    • 我已经尝试过每条记录,因为它是自己的事务,以及在事务中插入记录块。无论哪种情况,当我在列表中记录 247 时,它都像时钟一样失败了。
    【解决方案3】:

    我不知道那里出了什么问题,但也许您可以每隔 200 条记录自动关闭并重新打开数据库连接以解决它。

    【讨论】:

    • 不幸的是,这不起作用。关闭数据库并在代码中重新打开并不能解决问题。
    猜你喜欢
    • 2011-09-06
    • 2015-02-16
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多