crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QSqlRelationalDelegate
barabaka
  опции профиля:
сообщение 15.12.2011, 22:59
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 40
Регистрация: 14.11.2011
Из: Санкт-Петербург
Пользователь №: 2999

Спасибо сказали: 1 раз(а)




Репутация:   2  


СУБД 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 - 16.12.2011, 3:31
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
barabaka
  опции профиля:
сообщение 16.12.2011, 19:01
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 40
Регистрация: 14.11.2011
Из: Санкт-Петербург
Пользователь №: 2999

Спасибо сказали: 1 раз(а)




Репутация:   2  


Добавление ключевого поля в связывающую табличку решило проблему
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 11:54