подскажите плиз... как грамотно переопределить insertRow у QSqlQueryModel для вставки новой записи...
Ну для начала у QSqlQueryModel нет функции
insertRow. А
insertRows не предназначена для вставки новой записи.
Как работать с моделью написано в ассистенте:
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT name, salary FROM employee");
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
QTableView *view = new QTableView;
view->setModel(model);
view->show();
Работать надо через SQL запросы, типа
model->setQuery("insert into employee( name, salary ) values ('Petrov', 'sss')");
insertRows я и имел ввиду, звиняюсь за описку... знаю что не предназанчена для вставки....
я же и спрашиваю как переобпределить...
у меня получилось следующее
bool Model::insertRows(int row,int count, const QModelIndex & parent )
{
beginInsertRows(parent,row,row+count-1);
QSqlQuery q;
bool ok;
ok=q.exec("insert into debit (d_date,col) values(current_date,0)");
endInsertRows();
refresh();
return ok;
}
все бы ничего.... да только при этом добавляется ещё и левая строка в конец... и сбрасываеются все настройки модели (размеры колонок, столбцов и т.д.)... кто подскажет где грабли...?? плиз...