Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2015, 18:02   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию Корректное отображение данных после объединения таблиц

Доброе время суток, форумчане.

Есть таблица «MAIN_TABLE», которую я с помощью DataSet и Grid отображаю – все нормально.
Но мне потребовалось объединить две таблицы «MAIN_TABLE» и «SYNONYM» запросом:
Код:
SELECT mt.*, sy.synonym FROM MAIN_TABLE mt LEFT OUTER JOIN SYNONYM sy ON mt.ew1 = sy.ew1 ORDER BY mt.ew1
но получается так, что в «SYNONYM», есть несколько слов, которые привязываются к одному слову из «MAIN_TABLE», и поэтому строки в «MAIN_TABLE» дублируются.
А мне нужно убрать дубляж, а все слова из поля «sy.synonym» (из нескольких строк) засунуть в TDBMemo (чтоб в ссумме получилась одна строка в выборке), которое соединено с виртуальным полем в Dataset (т.е. это где-то на уровне DataSet делать преобразования, или нет?).
Как это сделать?

Спасибо
KBO вне форума Ответить с цитированием
Старый 23.05.2015, 18:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Запросом такое сделать крайне мало вероятно, на первый взгляд по крайней мере. В прогу дергай два датасета и для отображения программно собирай в кучу эти синонимы. Делал бы примерно так: в OnAfterScroll основной таблицы синонимы текущего слова засовывал бы для отображения в Memo например и ни каких DBMemo
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.05.2015, 21:32   #3
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

А если в таблице «SYNONYM», перед объединением таблиц, объединять все синонимы (пренадлежащие к одному слову (к одной строке)) как описано в ссылка и ссылка2, в одну строку, и уже потом делать объединение таблиц?
KBO вне форума Ответить с цитированием
Старый 23.05.2015, 22:16   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну если MS SQL, да поновей, то и получится. Навряд ли Blob, но varchar тоже устроит. Пробуй, ссылки есть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.05.2015, 02:49   #5
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

FireBird2.5.4
Еще можно использовать внутреннею процедуру, котрая будет собирать все слова из «SYNONYM» конкретного слова в один результат, и потом вызывать эту процедуру каждый раз, когда переходишь со строки на строку в «MAIN_TABLE», а результат писать допутим в вычисляемое поле DataSet.
Но как-то это плохо выглядеть будет
KBO вне форума Ответить с цитированием
Старый 27.05.2015, 01:32   #6
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Поступил проще,
с помощью master-detail (и добавлением в delphi: дополнительного dataset, dbGrid, dataSource)
KBO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корректное отображение даты в DataGridView wm_leviathan C# (си шарп) 2 12.03.2013 18:03
отображение данных из связных таблиц an.net Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 18.10.2011 14:20
Отображение в lookup данных из разных таблиц xabik БД в Delphi 7 03.06.2009 10:21
корректное отображение импортированных данных в формулах Excel petrov_ja Помощь студентам 1 03.03.2009 00:27
Корректное отображение русских букв. TheWanderer Общие вопросы C/C++ 2 17.11.2008 21:03