2015-07-02 26 views
0

我想用qt C++中的mysql數據庫大小來定義我的矢量大小。在執行我的命令後,它返回0並出現錯誤;如何用Qt獲取數據庫大小?

QMYSQLResult::data: column 1 out of range 

在行:

int dbSize = query.value(1).toInt(); 

然而,當我在MySQL-工作臺執行SQL命令時,它說:

這裏是我獲取數據庫大小的代碼塊:

int databaseConn::getDbSize() 
{ 
    QSqlDatabase::database().transaction(); 
    QSqlQuery query; 

    query.prepare("SELECT count(*) FROM images"); 
    query.exec(); 
    query.next(); 

    if(query.lastError().isValid()) 
    { 
     qDebug() << query.lastError().text(); 
     QSqlDatabase::database().rollback(); 

     return -1; 
    } 
    else 
    { 
     int dbSize = query.value(1).toInt(); 

     qDebug() << dbSize; 

     return dbSize; 
    } 
} 

你能幫我嗎我的錯誤在哪裏?

PS:我不想打電話給整個分貝又算什麼喜歡:

QSqlQuery query("SELECT * FROM test"); 

query.record().count(); 

回答

2

indexQVariant QSqlQuery::value (int index) const意味着在SELECT語句中字段的從零開始的索引。在你的情況下,唯一場count(*)將有指數0:

int dbSize = query.value(0).toInt(); 

你可以從QSqlRecord字段的計數:

qDebug() << query.record().count(); 
+0

所以,如果我執行'選擇名稱,從表姓;'如果我想得到的名字,我會用0和姓氏我會用1? – goGud

+0

@goGud你說得對。 – Amartel

相關問題