SQLite3 / C ++仅输出一行数据

时间:2017-04-12 10:11:57

标签: c++ sqlite

我遇到的问题是我的2个测试行中只有一个会用C ++输出。我的代码是:

#include <cstdio>
#include <sqlite3.h>
#include <windows.h>
#include <wincrypt.h>
#include <string>
#include <vector>
#include <iostream>

using namespace std;
/*Definitions*/
sqlite3 *db;
void *arg;
char *err;
const char* stmt = "SELECT * from table";
/*End of Definitions*/

int exec(void *arg, int argc, char **argv, char **column) {
    int i;
    for(i = 0; i < argc; i++) {
        cout << column[i] << ": " << argv[i] << endl;
    }
    cout << "------" << endl;
}

int main() {
    int rc = sqlite3_open("test.sqlite", &db); /*Open db "test.sqlite"*/
    if(!rc) {
        while(true) {
            sqlite3_exec(db, stmt, exec, arg, &err);
            if(err) {
                break;
            }
        }
    }
    /*Ending Stuff (NOTHING BEYOND THIS POINT)*/
    cin.get();
    return 0;
}

我没有得到任何错误;它纯粹只是输出第一行。 cout << err << endl;不会输出任何内容。任何帮助表示赞赏,谢谢。另外,我在2天前发了一篇关于此事的帖子,但由于我没有得到帮助,我正在重新发布。 @CL。碰巧在我之前的帖子上发表评论说我的SQL不正确,但我还没弄明白他的意思

1 个答案:

答案 0 :(得分:-2)

sqlite3_exec()用于执行插入更新语句。如需选择使用sqlite3_prepare(...)