Sqlite3命令不会执行

时间:2011-07-18 08:17:22

标签: select sqlite return

我的问题是我有一个程序使用一些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以便快速回答。

1 个答案:

答案 0 :(得分:0)

  1. 使用sqlite3_errmsg API函数获取错误消息并将其打印到日志中。这将告诉你问题是什么。
  2. 你在语句中不需要;,因为它只是告诉sqlite3_prepate_v2忽略它之后的任何东西(它返回指向它在最后一个参数中结束的位置以便于运行sql脚本),但这不会造成问题。