Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.04.2011, 19:13
Justin Justin вне форума
Прохожий
 
Регистрация: 16.12.2008
Сообщения: 29
Репутация: 10
По умолчанию SQL запрос - выборка значений

Добрый день!
Существует база, в которой есть множество таблиц. 2-е из них - таблицы Областей и Городов.
Нужно что бы при выборе Области в 1-м ComboBox-е, в другом появлялись Города, соответствующие только этой области.

В событии OnChange 1-го ComboBox-а пишу:
Код:
procedure TFormPacient.OblastChange(Sender: TObject);
var IDObl:Integer;
begin
IDOblast.itemIndex:=Oblast.ItemIndex;
IDObl:=StrToInt(IDOblast.Text);
PacientCity.active:=true;
IDCity.clear;
City.clear;
if not PacientCity.isEmpty then begin
  PacientCity.First;
  repeat
    IDCity.items.add(PacientCity.fieldbyname('IdCity').asString);
    City.items.add(PacientCity.fieldbyname('NCity').asString);
    PacientCity.next;
  until PacientCity.eof;
IDCity.itemindex:=0;
City.itemindex:=0;
PacientCity.active:=false;
end;
end;

SQLQuery для выборки городов содержит:
Код:
Select IDCity,IDOblast, NCity
from City
where IDOblast=IDObl
order by NCity

вот строчка
Код:
where IDOblast=IDObl
и не рабоатет.
Ответить с цитированием
  #2  
Старый 03.04.2011, 20:15
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

проблема решается без одной строчки кода, при условии если есть поле по которому можно связать две таблицы (один ко многим)!
Если есть то:
1. Связываешь эти таблицы
2. Добавляешь на форму DBLookupComboBox(вкладка Data controls)
3. в свойстве ListSources выбираешь соурс регионов, в listfild выбираешь поле названия региона, а в keyfild индексное поле.
И вуоля, автоматика!!!!
Ответить с цитированием
  #3  
Старый 04.04.2011, 16:25
Аватар для vs259
vs259 vs259 вне форума
Прохожий
 
Регистрация: 04.04.2011
Адрес: Москва
Сообщения: 7
Версия Delphi: BDS2006
Репутация: 10
По умолчанию

Именно - две таблицы, если на втором месте оставите запрос, то его связать не получится
Ответить с цитированием
  #4  
Старый 25.04.2011, 10:44
Justin Justin вне форума
Прохожий
 
Регистрация: 16.12.2008
Сообщения: 29
Репутация: 10
По умолчанию

Что-то я не совсем понял...
НАпрмиер у меня на форме 4 ComboBox-a. В 1 название Обалстей, во-втором их ID. В 3 - Названия городов, а в 4 - ID этих городов.
Так вот нужно, что бы при выборе Области в 1 CB, для 3 CB сформировался (отфильровался) список городов по ID (из 2 CB).
Ответить с цитированием
  #5  
Старый 25.04.2011, 10:56
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

вам же уже ответил Pilot_Red, почитайте в инете про MasterSource и MasterFields у компонентов TTable (TQuery) или какие вы там используете компоненты для доступа к таблицам.
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя
Ответить с цитированием
  #6  
Старый 25.04.2011, 14:36
Justin Justin вне форума
Прохожий
 
Регистрация: 16.12.2008
Сообщения: 29
Репутация: 10
По умолчанию

Сделал все, как сказал Pilot_Red, но чего-то не получилось. Получается у меня должны быть зависимость (фильтр) в таблице Города от ID Области. Соответственно должна быть произведена выборка по ID. А получается, что у компонента DBLookupComboBox нет связи с ComboBox-ом...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025