2014-01-23 50 views
-1

我有列ID,NAME和ADDRESS的表USER。例如C:遍歷SQLite記錄並將每個值賦給一個變量

列ID有1,2 列名具有鮑勃,簡 列地址有英國,美國

而且我希望通過所有記錄遍歷,每一列保存到一個數組。結果會是這樣的:

char * NAME [2]; NAME [0]將具有 「鮑勃」,NAME [1]將具有 「簡」 和

字符* ADDRESS [2]; ADDRESS [0]會有「UK」,ADDRESS [1]會有「US」。

有人可以指向正確的方向,而不是調用每個數組條目的SQL語句嗎?

在此先感謝!

+0

有一個在線zillion教程,你讀過嗎? –

+0

我見過一些(例如http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm),但它們只顯示如何顯示所有記錄,但沒有顯示如何遍歷行,最重要的是保存每個值成陣列。 –

回答

0

如果你開始與你鏈接到教程中的SELECT例如,你可以修改它有一個

struct results { 
    size_t num_used; 
    char* NAME[SOME_MAX_NUMBER_OF_ROWS_HERE]; 
    char* ADDRESS[SOME_MAX_NUMBER_OF_ROWS_HERE]; 
}; 

,然後讓那些在棧上的一個(與num_used設置爲0)和通作爲參數4的sqlite3_exec的指針。在callback中,您隨後將參數1指向struct resultsstrdup指向results->NAME[results->num_used]等的指針,並在末尾增加results->num_used。當sqlite3_exec返回時,您應該填寫您的NAMEADDRESS陣列。

當然有更好的方法來處理數組,所以你不必預測最大數量的行等,但這是一個不同的問題。

+0

謝謝你好,先生!我讀過這個,並意識到每個記錄都會調用回調函數。我也沒有想到可以使用結構。 –

相關問題