gpt4 book ai didi

ios - 如何使用 Titanium 将 db 文件保存在文档目录中

转载 作者:行者123 更新时间:2023-11-28 22:47:30 26 4
gpt4 key购买 nike

我想使用 Titanium API 将数据库文件保存在 Documents Directory 而不是 /Library/Private Documents 文件夹中。

var database = Titanium.Database.install('/db/Database.sqlite',DatabaseHandler.DB_NAME);

它被保存到

iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Library/Private Documents/Database.sql

而我们要求它在

iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Documents/dbDir/Database.sql

iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Documents/Database.sql

基本要求是,我们不希望用户的数据在新应用更新时丢失。在 App Store 的新应用更新中,仅保存文档目录数据,其余所有数据均被删除。

如果我手动移动数据库文件:

if(Ti.Platform.osname === 'iphone'){
var dbFile = database.file;
var filePath = String.format('%s/%s.sql',dbDir.resolve(),DatabaseHandler.DB_NAME);
Ti.API.info(filePath);
var result = dbFile.move(filePath);
Ti.API.info(result);
}

然后在运行应用程序时,我收到消息问题:

message = "invalid SQL statement. Error Domain=com.plausiblelabs.pldatabase Code=3 \"An error occured parsing the provided SQL statement.\" UserInfo=0x9c14ed0 {com.plausiblelabs.pldatabase.error.vendor.code=1, NSLocalizedDescription=An error occured parsing the provided SQL statement., com.plausiblelabs.pldatabase.error.query.string=SELECT * FROM UserProfile, com.plausiblelabs.pldatabase.error.vendor.string=no such table: UserProfile} in -[TiDatabaseProxy execute:] (TiDatabaseProxy.m:186)"

最佳答案

你是如何打开数据库的?

如果您在将 Ti.Database.open('MyDatabase') 移动到另一个位置后使用它,它会在默认位置创建一个名为“MyDatabase”的空白数据库。您最初安装数据库的位置。据我了解,这是 Ti.Database.open 的默认功能。如果数据库不存在,则创建它。因为这个数据库是新的,里面没有表,所以会说表 UserProfile 不存在。

我不知道您是否有办法在 Ti.Database.open 调用中限定数据库的位置。例如,我不知道

Ti.Database.open('/iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Documents/dbDir/MyDatabase')

是否有效。您需要告诉 open 调用数据库所在的位置,因为您将它从它期望找到它的位置移走了。也许情况并非如此,但您的示例代码并未显示您对数据库的使用情况,而是显示了您如何管理文件的移动。

关于ios - 如何使用 Titanium 将 db 文件保存在文档目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com