【问题标题】:Can not execute sqlite3_prepare_v2无法执行 sqlite3_prepare_v2
【发布时间】:2013-07-31 15:41:23
【问题描述】:

我无法执行 sqlite3_prepare_v2。当我调试程序时,程序会打开 DB,然后是 sqlite3_prepare_v2。当我单击继续时,它会退出 if loop & control transfer to finalize 语句。这是我的代码

sqlite3 * 数据库;

if(sqlite3_open([db_path UTF8String], &database)==SQLITE_OK)
{

    sqlite3_stmt * compiledstatement;

    sqlstmt = @" my select sql query";

    if(sqlite3_prepare_v2(database, sqlstmt, -1, &compiledstatement,NULL)==SQLITE_OK)

    {

        while(sqlite3_step(compiledstatement)==SQLITE_ROW)

        {

            // select query logic


        }

    }

    sqlite3_finalize(compiledstatement);

}

sqlite3_close(database);

【问题讨论】:

  • 返回哪个error code
  • 我没有收到任何错误代码。

标签: iphone sqlite


【解决方案1】:

sqlstmt 是代码中的 NSString。它应该是一个 C 字符串。改变

if (sqlite3_prepare_v2(database, sqlstmt, -1, &compiledstatement,NULL)==SQLITE_OK)

if (sqlite3_prepare_v2(database, [sqlstmt **UTF8String**], -1, &compiledstatement,NULL)==SQLITE_OK)

【讨论】:

    猜你喜欢
    • 2014-04-15
    • 2015-02-07
    • 2011-03-18
    • 2011-07-05
    • 1970-01-01
    • 2020-11-18
    • 2017-08-06
    • 2012-08-03
    相关资源
    最近更新 更多