crossplatform.ru

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

> QDataWidgetMapper и изменение foregn key
Begemot
  опции профиля:
сообщение 28.5.2010, 17:44
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 15.5.2010
Пользователь №: 1718

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




Репутация:   0  


Случилось тут проблема, и уже больше суток не могу решить, пробовал разные подходы все или вообще не работает или работает но через раз (не шучу).

Есть MySqlRelationalTableModel, у нее одно из полей внешний ключ (fkey) ну и соответвенно связанная таблица ID, Name. Все поля таблицы привязаны к виджетам на форме через QDataWidgetMapper, fkey привязан к QLineEdit. Отображается все отлично, вместо значения ключа я вижу соответвующий Name из связанной таблицы.

Вопрос как правильно програмно изменить это значение. Для юзера это выглядит так - QLineEdit read only, по щелчку на нему - открывается диалог, в котором список Name - пользователь выбирает нужное или _вводит новое_, я получаю строку которую он выбрал\ввел. Как мне теперь правильно изменить значение в главной модели и все это сохранить в бд?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Begemot
  опции профиля:
сообщение 30.5.2010, 13:13
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 15.5.2010
Пользователь №: 1718

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




Репутация:   0  


Допустил ошибку, надо поправить код создания базы данных сделав id автоинкрементным столбцами, надо заменить две соответвующие строчки на эти

query.exec("create table person (id integer primary key, name varchar(20), address varchar(200), typeid int)");
query.exec("create table addresstype (id integer primary key, description varchar(20))");
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Begemot
  опции профиля:
сообщение 30.5.2010, 19:26
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 15.5.2010
Пользователь №: 1718

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




Репутация:   0  


Вообщем похоже все плохо, Now I do not use QSqlRelationalTable model at all. Useless class. To many errors... and not so good design also. (с) Qt Bugtracker, полностью согласен. Вот еще по теме - статус поражает, и еще. :(

В принципе сейчас перейдя на стратегию ручного сабмита и дико извратившись, я сумел добится нужного поведения, но такой изврат оставлять нельзя. Так что буду наверно отказыватся от QSqlRelationalTable , брать QSqlTable и делать все ручками. блин почти 3 дня коту под хвости из за багов QSqlRelationalTable.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 18.2.2025, 7:14