QSqlRelationalTableModel: как получить значение |
Здравствуйте, гость ( Вход | Регистрация )
QSqlRelationalTableModel: как получить значение |
b10t |
10.7.2009, 9:06
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 2.7.2009 Пользователь №: 871 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день.
Есть модель от класса QSqlRelationalTableModel, мне необходимо получить ключ из поля, а не значение. Как это можно сделать ? CODE model->setRelation(2, QSqlRelation("diametr", "id", "naimenovanie")); Мне нужно получить значение ключа id, а не naimenovanie. Спасибо. |
|
|
mva |
10.7.2009, 10:07
Сообщение
#2
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
Т.к. это реляционное отношение двух таблиц, то значение ключа в столбце 2 модели model будет равно значению поля id в таблице diametr, если таковая запись в таблице diametr имеется.
|
|
|
b10t |
10.7.2009, 10:14
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 2.7.2009 Пользователь №: 871 Спасибо сказали: 0 раз(а) Репутация: 0 |
Т.к. это реляционное отношение двух таблиц, то значение ключа в столбце 2 модели model будет равно значению поля id в таблице diametr, если таковая запись в таблице diametr имеется. А как получить значение ключа ? Если делаем так : model->data(model->index(0, 2)), то получаем значение поля naimenovanie из таблицы diametr, а нужно получить id. |
|
|
mva |
10.7.2009, 10:23
Сообщение
#4
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
Точно так же, как получаем значение любого поля таблицы:
|
|
|
b10t |
10.7.2009, 10:29
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 2.7.2009 Пользователь №: 871 Спасибо сказали: 0 раз(а) Репутация: 0 |
Точно так же, как получаем значение любого поля таблицы:
Проверил, возвращает значение из поля naimenovanie, а не id. |
|
|
mva |
10.7.2009, 10:47
Сообщение
#6
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
...Упс! А я и забыл, что Qt просто подменяет значение ключа...
Тогда такие варианты: 1. Получать значение ключа до установления реляции. 2. В исходной таблице заводить копию поля 2. Вообще-то я тоже недавно столкнулся с этой проблемой и мне пришлось создать собственный класс на основе QSqlRelationalTableModel чтобы "доделать" реляции в Qt. Сейчас я уже и забыл про эту проблемку... |
|
|
b10t |
10.7.2009, 10:51
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 2.7.2009 Пользователь №: 871 Спасибо сказали: 0 раз(а) Репутация: 0 |
...Упс! А я и забыл, что Qt просто подменяет значение ключа... Тогда такие варианты: 1. Получать значение ключа до установления реляции. 2. В исходной таблице заводить копию поля 2. Вообще-то я тоже недавно столкнулся с этой проблемой и мне пришлось создать собственный класс на основе QSqlRelationalTableModel чтобы "доделать" реляции в Qt. Сейчас я уже и забыл про эту проблемку... Тогда так и сделаю спс |
|
|
Litkevich Yuriy |
10.7.2009, 12:46
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Есть ещё:
QSqlRelation |
|
|
b10t |
10.7.2009, 12:50
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 2.7.2009 Пользователь №: 871 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
10.7.2009, 13:20
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
b10t, так тебе всё-таки данные нужны?
|
|
|
Текстовая версия | Сейчас: 21.12.2024, 18:07 |