0

SQLite3DB.cpp には、いくつかのコード ブローがあります。

   void QueryJsFileBegin() {
       SQLite3Initilize();
    }

    bool QueryJsFileNext(JS_FILE* js_file) {
        int err = sqlite3_step(stmtQueryJSFILE);
        if (err != SQLITE_ROW) 
            return false;
        // get data.
        return true;
    }

    void QueryJsFileEnd() {
        sqlite3_reset(stmtQueryJSFILE);
    }

これらは、SQLite3DB.cpp でテストすると正常に動作します

void test () {
    db::JS_FILE js_file;
    for (db::QueryJsFileBegin(); db::QueryJsFileNext(&js_file); db::QueryJsFileEnd()) {
        MessageBoxA(NULL, js_file.js_file_name_.c_str(), "", 0);
    }
}

しかし、これらを他のcpp(main.cppなど)ファイルで使用すると、常に最初の行とデッドループが返されます。助けてくれてありがとう。

4

1 に答える 1

2

なぜなら、stepforの部分では、を実行sqlite3_reset()しているので、最初の行の後で閉じられます。

于 2012-04-27T07:22:48.093 に答える