2012-07-25 53 views
2

我無法理解當我實現QSqlQueryModel時如何訪問返回的元素。如何訪問從QSqlquerymodel集合查詢返回的元素

我知道你可以做 QSqlQuery查詢;

query.prepare("select * from database"); 

query.exec(); 

query.next(); 

qDebug() << "value in 0 is " << query.value(0).SomeFormat; 

所以我想要做類似的東西與QSqlQueryModel(顯然是更好的方式去)......在哪裏設置查詢,那麼我可以輸出的值到其他很多箱子,我有。 我有什麼至今...

QSqlQuery selectAllUserFields; 

selectAllUserFields.prepare(QString("SELECT * from %1 WHERE %2=:firstName and %3=:lastName;") 
          .arg(dbase::c_userTableName) 
          .arg(dbase::c_colUserFirstName) 
          .arg(dbase::c_colUserSecondName)); 

// finds the index of the current selection, so we can select the row 
QModelIndexList tableIndex = m_ui->populatedUserBox->selectionModel()->selection().indexes(); 


QString firstName = tableIndex.at(0).data().toString(); 

QString lastName = tableIndex.at(1).data().toString(); 

QSqlQueryModel dbUsers; 

dbUsers.setQuery(selectAllUserFields); 

qDebug() << "DEBUG: {temp} " << dbUsers.record(0).value(0).toString(); 

我beginnerish,所以會在正確的方向欣賞微調,如果有人可以幫助。

感謝 格蘭特

+0

也許你可以迭代模型的記錄從0到QSqlQueryModel :: rowCount? – hank 2012-07-26 06:25:41

+0

救了我這個問題 – 2015-12-12 18:11:33

回答

1

我建議你看看在QSqlQueryModel文檔「詳細說明」部分,在那裏它提供了一個例子,在。爲了更好地幫助你,這裏是一些代碼,我寫了一個應用程序遍歷模型結果集:

for(int i = 0; i < sqlQueryModel->rowCount(); ++i) 
{ 
    qDebug() << sqlQueryModel->record(i).value(0).toString(); 
} 

另一種方法是使用功能QSqlQueryModel ::數據();再次,我建議你閱讀這裏的文檔:http://doc-snapshot.qt-project.org/4.8/qsqlquerymodel.html

相關問題