Снова о QSqlRelationalTableModel, А если нужно взять несколько столбцов из другой таблицы? |
Здравствуйте, гость ( Вход | Регистрация )
Снова о QSqlRelationalTableModel, А если нужно взять несколько столбцов из другой таблицы? |
mva |
26.6.2009, 18:11
Сообщение
#11
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
mva, по сути ты не понял, что есть реляционная (относительная) связь в БД. Это место для себя прояснишь, отпадёт вопрос с Qt. С реляционными БД я работаю очень давно (на Visual FoxPro, до этого на FoxPro 2.6. Примерно с 92-го года), хорошо представляю себе что такое... А вот Qt хотя мне в целом нравится, но в плане работы с базами данных представляется мне несколько корявой. Но вернемся к вопросу...
Что означает здесь циферка 2? Она означает, что во втором (т.е. третьем) столбце находится внешний ключ, по которому мы найдем соответствующую запись в таблице city, и подставим вместо него (ключа) значение поля Name из нее. Правильно? Как мне сказать Qt, что я хочу из найденной записи взять еще поле phone_code?
Так? Кажется я понял о чем ты. Если есть таблицы:
То вместо: Вася, Россия, Мухосранск, ул. Ленина, 25 ты хочешь получать: Вася, Россия,[GPS], Мухосранск, [pupulation], [GTM], ул. Ленина, 25, [room], [phone] Так? Примерно так. Я хочу получить НЕСКОЛЬКО полей из таблицы, на которую ссылается ключ таблицы. |
|
|
Litkevich Yuriy |
26.6.2009, 18:32
Сообщение
#12
|
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Что означает здесь циферка 2? Она означает, что во втором (т.е. третьем) столбце таблицы employee находится внешний ключ, здесь всё верно. Разме что я бы сказал более точно (выделил)Как мне сказать Qt, что я хочу из найденной записи взять еще поле phone_code? с помощью только QSqlRelationalTableModel ни как, одно поле заменяется на другое и всё! (одно на одно)Можно поступить так, наиболее простое решение, создать вычисляемый столбец в связанной таблице, и подставлять его. Вот пример: Здесь столбец "Т.У." Это вычисляемое поле в БД (Имя подстанции и номер ячейки, плюс текст "яч.") |
|
|
||
mva |
26.6.2009, 18:36
Сообщение
#13
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
с помощью только QSqlRelationalTableModel ни как, одно поле заменяется на другое и всё! (одно на одно) Можно поступить так, наиболее простое решение, создать вычисляемый столбец в связанной таблице, и подставлять его. В-о-о-т.... Уже кое-что проясняется... Т.е. вы предлагаете сделать конкатенацию нужных мне полей из связанной таблицы и подставлять ее? Но там же записаны выражения различной длины и если их "слепить вместе", то в этом столбце получится каша... |
|
|
Litkevich Yuriy |
26.6.2009, 19:55
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
mva |
27.6.2009, 4:22
Сообщение
#15
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
27.6.2009, 5:36
Сообщение
#16
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
mva, про отдельные столбцы желания не понимаю.
Т.к. если они будут редактируемые то несколько столбцов должны будут одновременно свои значения менять, чтобы сохранить реляционную связь. |
|
|
mva |
27.6.2009, 19:10
Сообщение
#17
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
mva, про отдельные столбцы желания не понимаю. Т.к. если они будут редактируемые то несколько столбцов должны будут одновременно свои значения менять, чтобы сохранить реляционную связь. Такое ощущение, что вы совсем не работали с реляционными базами данных. Если я изменяю атрибуты (поля) связанной таблицы, то это не значит, что реляционная связь теряется, т.к. я не трогаю значения ключей. Ладно, я уже понял, что в Qt нет полноценной работы с реляционными отношениями таблиц. На таком уровне, как например в Visual FoxPro. Оно и не удивительно, т.к. все это хозяйство передано на уровень SQL серверов. |
|
|
Текстовая версия | Сейчас: 22.12.2024, 11:46 |