Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Замена поля в таблице.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
bayah
Господа, вот суть проблемы.
Есть две таблицы:


Таблица Специальность, содержащая два поля: Код специальности(ключевое) и Имя специальности.
Таблица План, содержащая так же два поля: Код Плана(ключевое) и Код специальности(ключевое).

Вопрос такой: Как сделать так, чтобы в таблице План, Код специальности заменялся бы соответсвющими значениями Имя специальности из таблицы Специальность.

И еще вопрос, как через QSqlTableModdel на QTableView выводить не всю таблицу. Например, мне ну нежно, чтобы в таблице Специальность отображалось поле Код Специальности а было только Имя Специальности.

Я отображаю так:
QSqlTableModel *spec = new QSqlTableModel;
plan->setTable("PLAN");
plan->select();
kibsoft
Цитата
Вопрос такой: Как сделать так, чтобы в таблице План, Код специальности заменялся бы соответсвющими значениями Имя специальности из таблицы Специальность.

Берешь QSqlQueryModel, пишешь запрос типа:
SELECT КодПлана,ИмяСпециальности FROM План,Специальность WHERE План.КодСпециальности=Специальность.КодСпециальности

Убрать 1 столбец можно так:
QSqlTableModel *spec = new QSqlTableModel;
spec->removeColumn(0);


P.S. Читайте документацию, в ней все есть! Документация от Qt - это не MSDN, где можно найти только кукиш.
Litkevich Yuriy
Цитата(bayah @ 29.5.2010, 19:23) *
Как сделать так, чтобы в таблице План, Код специальности заменялся бы соответсвющими значениями Имя специальности из таблицы Специальность.
изучай асистент:
Модуль QtSql > Модель реляционной таблицы SQL
bayah
QSqlQueryModel
Цитата(kibsoft @ 29.5.2010, 17:42) *
Берешь QSqlQueryModel, пишешь запрос типа:
SELECT КодПлана,ИмяСпециальности FROM План,Специальность WHERE План.КодСпециальности=Специальность.КодСпециальности


Да, запрос можно сделать с помощью QSqlQueryModel, вот только как потом с этой выборкой работать через методы QSqlTableModel? Возможно ли вообще?

Или необходимость формировать сложные запросы, используя несколько таблиц приводит к необходимости использовать более низкоуровневые модели. Короче делать мне все это на QSqlQuery остаестя?)
MoPDoBoPoT
bayah, во-первых, посмотри что тебе ответил Litkevich Yuriy. Во-вторых, для сложных запросов еще можно использовать представления БД (для обновления данных в представлении оно должно отвечать требованиям обновляемости, но это уже к стандарту SQL и специфики конкретной СУБД).
bayah
Цитата(MoPDoBoPoT @ 31.5.2010, 14:51) *
bayah, во-первых, посмотри что тебе ответил Litkevich Yuriy. Во-вторых, для сложных запросов еще можно использовать представления БД (для обновления данных в представлении оно должно отвечать требованиям обновляемости, но это уже к стандарту SQL и специфики конкретной СУБД).


Пардон, не прочел сообщение Litkevich Yuriy.
Litkevich Yuriy, вам спасибо.

MoPDoBoPoT, я уже как раз сделал используя представления(если мы говорим об одном? представления это то что CREATE VIEW?) и да - через представления не проходит обновление. Поэтому я использовал представление для получения и отображения информации, а обновлял уже непосредственно основные таблицы БД.

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