gpt4 book ai didi

iphone - sqlite3更新行语法

转载 作者:行者123 更新时间:2023-12-03 20:00:55 24 4
gpt4 key购买 nike

从 sqlite3 文档看来,我应该能够使用以下语法来更新 iPhone 上数据库中的行:


NSString *dbFile = [[NSBundle mainBundle] pathForResource:@"database" ofType:@"db"];
sqlite3 *database = NULL;

if (sqlite3_open([dbFile UTF8String], &database) == SQLITE_OK) {
NSString *sql = [NSString stringWithFormat:@"update mytable set myfirstcolumn=%d, mysecondcolumn=%d where id=%d", int1, int2, int3];
sqlite3_exec(database, [sql UTF8String], MyCallback, nil, nil);
}

sqlite3_close(database);

但它不会更新数据库,甚至不会调用回调方法。这是否只是错误的语法,例如 sqlite3_exec() 无法执行更新?

在我的示例中,所有列名称都是正确的,并且三个 int 值记录为正确的值,所以我有点没有想法......

谢谢。

最佳答案

嗯,对了,现在已经弄清楚流程了,或许可以解答别人的疑问了。基本上,我在资源包中拥有数据库,其中包含一些用于测试的基本数据,我可以很好地阅读这些数据。但由于捆绑资源是只读的,我无法将数据写回数据库。

因此,解决方案是在应用程序启动时以编程方式将数据库复制到应用程序的文档文件夹中,但使用代码查看数据库是否已存在(以免覆盖它)。由于该文件夹是可读写的,因此更新数据库应该不会出现问题。

关于iphone - sqlite3更新行语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3466663/

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