gpt4 book ai didi

ios - 运行 iOS SQLite 更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:50 24 4
gpt4 key购买 nike

我正在使用它在测试 iOS 应用程序中执行更新语句,日志输出“成功”但数据库中没有任何变化。谁能指出我正确的方向?将不胜感激。

我是全新的,所以请原谅我可能写得很糟糕的代码。

@try {
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"chars.sqlite3"];
BOOL success = [fileMgr fileExistsAtPath:dbPath];
if(!success)
{
NSLog(@"Cannot locate database file '%@'.", dbPath);
}
if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
NSLog(@"An error has occured: %s", sqlite3_errmsg(db));

}
const char *sql = "UPDATE characters SET level = 'testing' WHERE id='1'";
sqlite3_stmt *sqlStatement;
if(sqlite3_prepare(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK)
{
NSLog(@"Problem with prepare statement: %s", sqlite3_errmsg(db));
}else{
if (sqlite3_step(sqlStatement) == SQLITE_DONE){
NSLog(@"Success");
}
}
sqlite3_finalize(sqlStatement);
}
@catch (NSException *exception) {
NSLog(@"Problem with prepare statement: %s", sqlite3_errmsg(db));
}
@finally {
sqlite3_close(db);
}

最佳答案

问题是您从包中打开数据库,它是只读的。你应该

  1. 检查 Documents 文件夹中是否存在数据库。

  2. 如果不存在,请将数据库从 bundle 复制到 Documents 文件夹。

  3. 现在,从 Documents 文件夹中打开数据库。

关于ios - 运行 iOS SQLite 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18172461/

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