我遇到的问题是我的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不正确,但我还没弄明白他的意思
答案 0 :(得分:-2)
sqlite3_exec()用于执行插入更新语句。如需选择使用sqlite3_prepare(...)