Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QSqlRelationalDelegate
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
barabaka
СУБД ms sql server 2008. Qt 4.7.4

    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. И такой глюк: в первом столбце таблицы после выбора пункта из появляющегося комбобокса вместо имени появляется само значение внешнего ключа,пока на другую строку не перейдёшь.Со вторым столбцом такого нету.

В средней таблице,где хранятся внешние ключи,собственного первичного ключа нет.

В чём тут дело?
barabaka
Добавление ключевого поля в связывающую табличку решило проблему
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.