我的问题是我有一个程序使用一些sql语句
const char *sqlStatement = "SELECT lastPlayed FROM Settings;";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) != SQLITE_OK) {
NSLog(@"database error");
}
if(sqlite3_step(compiledStatement) == SQLITE_ROW){
...
}
我的问题是,使用这个sql命令,它将写入nslog数据库错误,它将不会进入我的if的主体中使用该语句...如果我更改sql语句以从中选择名称会议限制? ,?绑定两个数字它会工作得很好。我在sqlite管理器中测试了sql命令,工作得很好......有什么帮助吗?可能是什么问题?
Update1:发现它没有这样的表:设置即使我有它...也许这是xCode的问题?它不会更新模拟器?
Update2解决了:问题的根源是模拟器......我不得不删除缓存... thx以便快速回答。
答案 0 :(得分:0)
sqlite3_errmsg
API函数获取错误消息并将其打印到日志中。这将告诉你问题是什么。;
,因为它只是告诉sqlite3_prepate_v2
忽略它之后的任何东西(它返回指向它在最后一个参数中结束的位置以便于运行sql脚本),但这不会造成问题。