SQLite查询可以从命令行正常工作,但在代码中使用时会出错

时间:2014-07-21 21:32:10

标签: c++ sqlite

使用C ++ ...

我正在使用的SQL查询是:

    SELECT column FROM table WHERE column = 'name' LIMIT (SELECT COUNT(*) FROM table) - 1, 1

从命令行运行时,我没有任何问题,并取回我期望的结果。但是,当我尝试在代码中使用它时,我的sqlite3_prepare_v2返回SQLITE_ERROR,使用该语句的sqlite3_step返回SQLITE_MISUSE。

我知道其他一切设置正常,因为如果我删除:

    (SELECT COUNT(*) FROM table) - 1

进行查询:

    SELECT column FROM table WHERE column = 'name' LIMIT 1

它工作正常。所以这就是我想象的问题所在。但是,当我按照我所说的命令行运行它时,它工作正常。周围的代码是:

    sqlite3 *db;
    sqlite3_open(FILEPATH);
    sqlite3_stmt *stmt;
    const char *pzTest;
    char *szSQL;

    szSQL = "SELECT column FROM table WHERE column = 'name' LIMIT (SELECT COUNT(*) FROM table) - 1, 1";

    sqlite3_prepare_v2(db, szSQL, 100, &stmt, &pzTest);
    sqlite3_step(stmt);

0 个答案:

没有答案