[C++/QT] QTableView (refresh)
Strona [ 1 ] z 1
| monomer |
07-02-2010 22:44 |
|
Użytkownik Status: Offline Dołączył: 07-02-2010 |
Witam mam mały problem nad którym siedzę od wczoraj wieczór mam coś takiego: do wyświetlania : void MainWindow::display() { QSqlQueryModel *model=new QSqlQueryModel(ui->tableView); model->setQuery(dotabelki); if(model->lastError().type() != QSqlError::NoError) { QString error=model->lastError().text(); QMessageBox::information(0,"uwaga uwaga",error); } else ui->tableView->setModel(model); } do zapisywania: void MainWindow::Fwstaw(QSqlQuery wstaw) { QSqlQuery queryUser; QString userQuery="select iduser from user where imie = '"; userQuery.append(INuser); userQuery.append("'"); queryUser.exec(userQuery); queryUser.next(); QSqlQuery queryProd; QString prodQuery="select idprodukt from produkt where nazwa = '"; prodQuery.append(INprodukt); prodQuery.append(" '"); queryProd.exec(prodQuery); queryProd.next(); wstaw.prepare("insert into trans (data, cena, ilosc, produkt_id, user_id) values " "(:data, :cena, :ilosc, :produkt_id, :user_id);"); wstaw.bindValue(":data",data); wstaw.bindValue(":cena", ui->cenaDoubleSpinBox->value()); wstaw.bindValue(":ilosc",ui->iloscSpinBox->value()); wstaw.bindValue(":produkt_id",queryProd.value(0).toInt()); wstaw.bindValue(":user_id",queryUser.value(0).toInt()); wstaw.exec(); QString errrr=wstaw.lastError().text(); qDebug() << errrr ; } wszystko działa, a mój problem polega na tym że nijak nie mogę odświeżyć widoku tabelki . Czy jest jakiś bezbolesny sposób? Chodzi mi o odświerzenie po zapisaniu nowych danych do bazy lub po zmianie kwerendy. *** ** * _ Ostatnio zmodyfikowany: 08-02-2010 09:52 przez monomer |
|
|
| kotlar |
08-02-2010 10:55 |
|
Użytkownik Status: Offline Dołączył: 02-10-2009 |
Zrób sobie metodę powiedzmy "odswiezQueryModel" w której będziesz konstruował zapytanie po czy go wykonasz i podepniesz wynik do modelu:) void ???::odswiezQueryModel( void ) { QSqlQuery query( *sql_db ); query.prepare( "???" ); query.exec(); table_model->setQuery( query ); } gdzie: QSqlQueryModel table_model; |
|
|
| monomer |
08-02-2010 11:02 |
|
Użytkownik Status: Offline Dołączył: 07-02-2010 |
dzięki za podpowiedź, wypróbuję wieczorem
|
|
|
| monomer |
08-02-2010 18:41 |
|
Użytkownik Status: Offline Dołączył: 07-02-2010 |
DZIĘKI DZIĘKI już działa, a nie działało bo poprawnie powinno być: void MainWindow::display() { model=new QSqlQueryModel(ui->tableView); //było QSqlQueryModel model=... no i wywalało model->setQuery(dotabelki); if(model->lastError().type() != QSqlError::NoError) { QString error=model->lastError().text(); QMessageBox::information(0,"uwaga uwaga",error); } else ui->tableView->setModel(model); } a odświerzenia załatwia kod: QSqlQuery query(dotabelki);
query.exec(); model->setQuery(query); |
|
|
|
|
|
Strona [ 1 ] z 1
| 1 użytkownik(ów) przegląda ten temat (1 gości) |
|---|
| (żadnych zarejestrowanych użytkowników) |









