2010-07-23 25 views
0

只是試圖用Qt和SQLite來熟悉如何工作 - 我從vb6開始就沒有真正做過DB編程,所以請簡單;]試圖獲取QSqlQuery的值時編譯錯誤?

我只是試圖獲得一個查詢的結果,我試圖按照我在網上找到的一些例子(即this之一)。這個過程似乎很簡單:創建QSqlQuery對象,讓它執行查詢,檢查返回的東西,然後獲取值。當這樣做時,我收到錯誤。代碼如下:

bool DatabaseManager::structureDB(){ 
    QSqlQuery query; 
    query.exec("CREATE TABLE mytable" 
         " (id integer primary key," 
         " firstname varchar(20)," 
         " lastname varchar(20)," 
         " age integer)"); 

    QSqlQuery query2; 
    query2.exec("pragma table_info(mytable)"); 

    if(query2.first()){ 
     QString test = query2.value(0).toString(); // Error line 
     qDebug()<<test; 
     return true; 
    } 
    return false; 
} 

我得到的錯誤是:

error: invalid use of incomplete type 'struct QVariant' 

在線以上評論。我不知道這個錯誤意味着什麼,或者我做錯了什麼,有人可以幫忙嗎?非常感謝!

+0

是否定義了'QVariant'? (你有沒有包含它的頭文件?) – GManNickG 2010-07-23 00:18:37

+0

我沒有包括它,我已經包含。包括似乎已經做了伎倆,謝謝!如果您提交正式答案,我會選擇正確答案,如果您的答案正確,我認爲您會收到一個蛋糕或其他東西! – Joseph 2010-07-23 00:30:12

+0

蛋糕PLZ。 :) – GManNickG 2010-07-23 00:40:44

回答

1

基本上,該類型聲明,但沒有定義,像這樣:

struct QVariant; 

一旦你嘗試使用它,它需要被定義,像這樣:

struct QVariant 
{ 
    // stuff goes here 
}; 

的錯誤是告訴你這是不完整(聲明但未定義),因此不可用。您應該包含標頭<QVariant>以獲得QVariant的定義,使其完成完成並因此可用。

+0

[Boom](http://imgur.com/f3b7Z.jpg),二元蛋糕! – Joseph 2010-07-23 00:59:45