2017-04-12 47 views
0

我遇到了一個問題,我的2個測試行中只有一行將以C++輸出。我的代碼是:SQLite3/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

@CL。我甚至承認這是重複的,因爲你幾乎不給我任何方式來解決我的問題。 –

回答

-2

sqlite3_exec()用於執行插入更新語句。對於選擇使用sqlite3_prepare(...)

+0

謝謝,我會得到這個設置,並希望有這個工作。 –