2012-04-07 65 views
1

您可以告訴我如何從數據庫中獲取Qt列的最後一個值。如何從數據庫中獲取最後一個值(postgre)並將其顯示在Qt中

我知道我可以使用while循環獲取最後一個值,但這對於程序來說太多了。

+0

你的意思是行ID(或主索引),或包含在最高ID:也許這不是最優化而漂亮,做工精細

int SomeClass::get_last_id(QString sequence){ QSqlQuery query(QString("select currval('%1')").arg(sequence), this->dbh); query.next(); return query.value(0).toInt(); } 

中的用法與QSqlTableModel表? – alexisdm 2012-04-07 15:46:38

+0

@alexisdm @alexisdm我的意思是最後一次插入操作 – depecheSoul 2012-04-07 16:02:12

回答

0
QSqlQuery sqlQuery; 
sqlQuery.prepare("SELECT \"Ime\", \"Prezime\", \"ID\" FROM tabela;"); 
sqlQuery.exec(); 
if (sqlQuery.isActive()){ 
    if (sqlQuery.isSelect()){ 
     if (sqlQuery.last()){ 
      QString string=sqlQuery.value(2).toString(); 
     } 
    } 
} 

解決方案

+0

獲得最後一項這不是一個很好的解決方案,因爲即使只使用其中的一個,數據庫也可能必須生成所有行。如果你只想要最後一行,使用'SELECT Ime,Prezime,id tabela order by id desc limit 1'。 – alexisdm 2012-04-08 12:47:04

1

對我來說,沒有什麼工作是我發現谷歌和這裏。最後我找到解決方案。最後插入操作的

model->setTable(TABLE_NAME); 
model->insertRows(0, 1); 
model->setData(model->index(0, parent_domain), _domain); 
model->setData(model->index(0, parent_token), _token.mid(0,19).toUpper()); 
model->setData(model->index(0, parent_name), _name); 
model->submitAll(); 
int id = get_last_id(TABLE_SEQUENCE); 
相關問題