Russian Qt Forum
Сентябрь 30, 2024, 18:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как вставить 2 QSqlSelectCursor а в один DataTable ?  (Прочитано 3819 раз)
Jkc
Гость
« : Сентябрь 21, 2006, 17:16 »

Qt 3.3.4
Вот какое дело, мне нужно выбрать даные с четырёх таблиц и поместить эти данные в DataTable запрос выглядит так
 
Код:

cursor = new QSqlSelectCursor( "SELECT * FROM fdt_met, fdt_org WHERE fdt_met.flogin = fdt_org.foid UNION SELECT *  FROM fdt_sklad2 , fdt_inforg WHERE fdt_sklad2.flogin = fdt_inforg.foid");

datTabStore->setSqlCursor( cursor );
datTabStore->addColumn( "ftype",  "Тип",42);
-------
datTabStore->addColumn("forg", "Организация", 120);
datTabStore->refresh();
datTabStore->show();


Но с UNION работает не корректно, хотя по отдельности всё нормально. Можно ли как то выбрать данные двумя запросами а потом их вставить в таблицу или подскажите как лучше поступить в данной ситуации?
P.S. таблицы одинаковые.
Записан
Tonal
Гость
« Ответ #1 : Сентябрь 22, 2006, 06:59 »

Что значит "некорректно"?
Ты этот запрос в каком-нибудь менеджере выполнял?
У тебя точно количество и типы полей обоих запросов совпадают?
Записан
Jkc
Гость
« Ответ #2 : Сентябрь 22, 2006, 12:00 »

Не коректно это значит, что не все записи выводит. А поля и типы всё совпадает.
Записан
bigirbis
Гость
« Ответ #3 : Сентябрь 22, 2006, 14:09 »

А в менеджере действительно верно все записи выбирает?
Записан
Jkc
Гость
« Ответ #4 : Сентябрь 29, 2006, 17:54 »

Внимание правильный ответ
В запросе после UNION нужно дописать ALL

cursor = new QSqlSelectCursor( "SELECT * FROM fdt_met, fdt_org WHERE fdt_met.flogin = fdt_org.foid UNION ALL SELECT *  FROM fdt_sklad2 , fdt_inforg WHERE fdt_sklad2.flogin = fdt_inforg.foid");
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 20.