在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)文件中使用它们时,它总是返回第一行和死循环。谢谢你的帮助。
答案 0 :(得分:2)
因为,在step
部分,您正在运行sqlite3_reset()
,因此它会在第一行后关闭。