Russian Qt Forum
Ноябрь 24, 2024, 04:34
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
заполнение в Qt данными базы из нескольких связанных таблиц
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: заполнение в Qt данными базы из нескольких связанных таблиц (Прочитано 7064 раз)
samovar7777
Гость
заполнение в Qt данными базы из нескольких связанных таблиц
«
:
Июнь 06, 2009, 18:32 »
Добрый вечер всем!! Помогите, пож-та, разобраться в следующем: База данных создана в MySql. База состоит из нескольких связанных таблиц. Есть форма, с которой должны заносится данные в базу(в разные таблицы)
Во всех рассмотренных источниках мне всреч. вставка данных только в одну таблицу:
QSqlQuery query;
query.prepare("INSERT INTO employee (id, name, salary)"
"VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Thad Beaumont");
query.addBindValue(65000);
query.exec();
Можно ли модифицировать данный программный код для вставки данных в несколько таблиц (связанных между собой)
!!!! Или какие еще существуют пути решения данной задачи. Помогите, пож-та. Заранее Вам спасибо!!!
Записан
ритт
Гость
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #1 :
Июнь 06, 2009, 19:06 »
следует изменить запрос соответствующим образом - вот и вся модификация кода...
Записан
samovar7777
Гость
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #2 :
Июнь 07, 2009, 11:03 »
Цитата: Константин от Июнь 06, 2009, 19:06
следует изменить запрос соответствующим образом - вот и вся модификация кода...
Можете подробнее раскрыть фразу "соответствующим образом"
!!!!!!!
Буду очень благодарен...
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #3 :
Июнь 07, 2009, 11:32 »
В SQL, если мне память не изменяет, запрос вставки/обновления может быть адресован только для одной таблицы.
Следовательно, нужно сделать несколько запросов, каждый для своей таблицы
Записан
Юра.
samovar7777
Гость
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #4 :
Июнь 07, 2009, 12:44 »
Действительно, делая отдельными запросами, заполняет отдельные несвязанные таблицы;)......Большое спасибо Вам!!!! Осталось разобраться в заполнении связанных таблиц....
Записан
VIMSVEI
Гость
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #5 :
Июнь 09, 2009, 21:00 »
Еще можешь сделать хранимую процедуру на стороне БД, в которую параметрами передаешь данные для вставки в таблицы. В теле этой процедуры пишешь SQL-запросы на разнесение данных по таблицам...
Записан
developer
Гость
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #6 :
Июнь 10, 2009, 10:27 »
Если очень много связанных таблиц и нужно вставить сложные данние, я б рекомендовал использовать VIEW. То-есть примерно так:
1. создать view (CREATE VIEW MyFirstView AS SELECT table1.col1, table2.col2, table3.col3 FROM table1, table2, table3);
Таким образом мы создаем так сказать новою таблицу MyFirstView которою мы можем полноценно использовать как таблицу.
2. Программно делать инсерт, селект, апдейт одной строчкой из кода.
QSqlQuery query;
query.prepare("INSERT INTO MyFirstView (col1, col2, col3)"
"VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Thad Beaumont");
query.addBindValue(65000);
query.exec();
Подробнее про виевы читай доку.
Записан
MoPDoBoPoT
Гость
Re: заполнение в Qt данными базы из нескольких связанных таблиц
«
Ответ #7 :
Июнь 10, 2009, 10:59 »
Цитата: developer от Июнь 10, 2009, 10:27
Если очень много связанных таблиц и нужно вставить сложные данние, я б рекомендовал использовать VIEW. То-есть примерно так:
1. создать view (CREATE VIEW MyFirstView AS SELECT table1.col1, table2.col2, table3.col3 FROM table1, table2, table3);
Таким образом мы создаем так сказать новою таблицу MyFirstView которою мы можем полноценно использовать как таблицу.
2. Программно делать инсерт, селект, апдейт одной строчкой из кода.
QSqlQuery query;
query.prepare("INSERT INTO MyFirstView (col1, col2, col3)"
"VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Thad Beaumont");
query.addBindValue(65000);
query.exec();
Подробнее про виевы читай доку.
Так можно делать, если представление обновляемо. Чтобы узнать, в каких случаях представление обновляемо, надо читать доку конкретной СУБД.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...