|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Одинаковые строки в DBLookupComboBox
Доброго времени суток!!!!
Есть 1 DBComboBox и 2 DBLookupComboBox В DBComboBox забит список областей, а в DBLookupComboBox-ах по запросу выбираются соответствующие районы области и нас. пункты даного района. При выборе области все работает нормально (список районов фильтрируется), но названия повторяются в том количестве сколько нас. пунктов в этом районе присутствует. Список районов и нас пунктов забит в одной таблице. Так вот, вопрос!!!!,: Как Этого избежать????? Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#2
|
|||
|
|||
а запрос для lookup'а можно увидеть
|
#3
|
||||
|
||||
Вся проблема скорее всего заключается в SQL запросе. Называется это декартовое произведение.
Избежать этого можно изменением запроса. Например. Таблица областей - oblast. id_obl int индетификатор области name_obl varchar(50) наименование области Таблица районов - raion. id_rai int индетификатор района id_obl int индетефикатор области name_rai varchar(50) наименование района Таблица населенных пунктов - punkt. id_punkt int индетификатор нас.пункта id_rai int индетификатор района name_punkt varchar(50) наименование нас.пункта Тогда запрос на выбор района будет таким: SELECT name_rai FROM dbo.oblast INNER JOIN dbo.raion ON dbo.oblast.id_obl = dbo.raion.id_obl where id_obl=<индетификатор выбранной области> А запрос на выбор населеного пункта будет выглядеть вот так: SELECT dbo.punkt.name_punkt FROM dbo.raion INNER JOIN dbo.punkt ON dbo.raion.id_rai = dbo.punkt.id_rai where id_rai=<индетификатор выбранного района> Успехов!! |
#4
|
||||
|
||||
Цитата:
Код:
Query2.Close; Query2.SQL.Clear; Query2.SQL.Add('SELECT PUNKT FROM Sp_Region.DB WHERE REGION LIKE "'+ADR_REGION.Field.Text+'"'); Query2.Open; Цитата:
Цитата:
Цитата:
Но эти две таблицы должны быть вместе (в одной) Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 14.02.2008 в 09:34. |
#5
|
||||
|
||||
Код:
Query2.Close; Query2.SQL.Clear; Query2.SQL.Add('SELECT PUNKT FROM Sp_Region.DB WHERE REGION LIKE "'+ADR_REGION.Field.Text+'"'+' GROUP BY PUNKT'); Query2.Open; |
#6
|
||||
|
||||
Aristarh Dark
Огромное Спасибо!!! Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|