Ok i 'll try explain it
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 
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);
// 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);
To copy to clipboard, switch view to plain text mode
Hope for your help..
Bookmarks