QSqlRelationalTableModel *rstm=new QSqlRelationalTableModel(this,db);
rstm->setTable("ShopStock");
int idStockIndex=rstm->record().indexOf("idStock");
int idShopIndex=rstm->record().indexOf("idShop");
rstm->setHeaderData(idStockIndex,Qt::Horizontal,"Stock");
rstm->setHeaderData(idShopIndex,Qt::Horizontal,"Shop");
rstm->setRelation(idStockIndex,QSqlRelation(QString("Stock"),QString("id"),QString("Name")));
rstm->setRelation(idShopIndex,QSqlRelation("Shop","id","Name"));
rstm->setSort(idShopIndex,Qt::AscendingOrder);
rstm->setEditStrategy(QSqlTableModel::OnRowChange);
ui->tableView_2->setItemDelegate(new QSqlRelationalDelegate(this));
rstm->select();
Есть 3 таблички. В средней хранятся id полей из 2 соседних.При попытке редактирования существующих записей вылетает ошибка:
QODBCResult::exec: Unable to execute statement: "[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Name'. [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared."
Вообщем если просто добавлять новую строчку в табличку,то всё работает.и строки в базу добавляются.Только при закрытии вылетает Debug Assertion. И такой глюк: в первом столбце таблицы после выбора пункта из появляющегося комбобокса вместо имени появляется само значение внешнего ключа,пока на другую строку не перейдёшь.Со вторым столбцом такого нету.
В средней таблице,где хранятся внешние ключи,собственного первичного ключа нет.
В чём тут дело?