PDA

View Full Version : Not corect record pos in data table after update



zlatko
1st May 2006, 14:58
Ok i 'll try explain it :rolleyes:

I have data table (read only). I fill it through QSqlSelectCursor.When i catch double click on data table row i create widget for editing(there i use QSqlForm for relate table fields with controls).After i finish edit my edited record move at last row in data table :confused:

Is that correct? I dont think that...Give piece of code



// reaction on double click catching,dtMain - pointer on my data table
QFormUpdBranch frmUpdBranch(dtMain,false);
frmAddBranch.exec();

// constructor of QFormUpdBranch
QSqlRecord *recordSelected = m_pdtMain->currentRecord();
int nBranchId = recordSelected->value("id").toInt();
m_pcurUpdate = new QSqlCursor("branches");
m_pcurUpdate->select("id = " + QString::number(nBranchId));
m_pcurUpdate->next();

m_psqlForm = new QSqlForm(this);
m_psqlForm->setRecord(m_pcurUpdate->primeUpdate());
m_psqlForm->insert(txtBranchName, "description");
m_psqlForm->insert(txtIP, "ip_address");
m_psqlForm->insert(txtPort, "port");
m_psqlForm->readFields();

// reaction on Ok
m_psqlForm->writeFields();
m_pcurUpdate->update();
m_pdtMain->refresh(QDataTable::RefreshAll);



Hope for your help..

jacek
1st May 2006, 15:33
m_pdtMain->refresh(QDataTable::RefreshAll);
Simple "m_pdtMain->refresh()" should be enough.

How do you sort that table? Did you use ORDER BY clause?

zlatko
1st May 2006, 15:39
Simple "m_pdtMain->refresh()" should be enough.

How do you sort that table? Did you use ORDER BY clause?

No I havent use sorting

jacek
1st May 2006, 16:51
No I havent use sorting
In that case records can be in any order.