2012-12-05 87 views
1

我需要我的公司正在建立的应用程序中的功能解决方案。它是iPhone和iPad的iOS应用程序,我们只支持ios5及以上版本。sqlite数据库从ios应用程序干净地导出

我们需要的最终结果是用户能够发掘转储应用程序内部数据库干净,它附加到电子邮件的用户,然后解决他们希望谁的设置区域内的按钮。

附加到电子邮件不是问题。我担心的是,如果有理由认为将一个sqlite数据库的副本作为附件导出到电子邮件将会为用户留下可用的数据库副本。我的客户群不擅长做备份,但数据对他们来说非常重要。

sqlite数据库的热导出是否可用,即是否支持,或者数据库是否会有时/永远损坏?

请记住,所有此功能必须做的是使数据库的可用副本脱离设备并安全地脱机存储,以便我可以通过将数据库复制回到使用iExplorer或PhoneView的设备。

未来我们计划增加一个强大的导出和导入功能,但现在我们正在寻找一种我们可以在一天或更短时间内实施的解决方案。

在此先感谢anybodys输入和gasp一些客观c代码,它会转储一个SQLite数据库的干净副本,使数据库将可用,并没有损坏。

回答

0

您不需要制作数据库的热副本。当用户选择应用程序的备份功能时,关闭数据库,复制文件,然后重新打开数据库。您现在可以将复制的文件附加到电子邮件中。

我在我的应用程序中做了这个功能。我从来没有遇到过损坏的数据库文件的问题。只要没有正在运行的活动事务,sqlite文件应该可以复制,特别是如果没有打开的句柄。

另一种选择是使用sqlite3_backup_init和相关函数来复制数据库。

+0

感谢您的意见。事实证明,你这样做,从来没有损坏的数据库是我的关键问题:数据库结果的可行和良好的副本。非常感谢您的宝贵时间! – user1880635

相关问题