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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.05.2009, 12:51
ЮЛК@ ЮЛК@ вне форума
Прохожий
 
Регистрация: 26.03.2009
Сообщения: 2
Репутация: 10
По умолчанию Как связать два DBComboboxa?

Здравствуйте, помогите пожалуйста начинающему программисту! У меня на форме находятся два DBComboboxa: DBCombobox1 - отображает список шахт, DBCombobox2 - отображает список точек отбора проб ( т.е. местоположение в шахте). Необходимо, чтобы при выборе конкретной шахты из DBCombobox1, в DBCombobox2 появлялся список точек проб для этой шахты. Вроде кажется что легко, а никак не могу реализовать! База данных InterBase, состоит из 4х таблиц: таблица шахт, таблица точек отбора(замера) проб, таблица проб и главная таблица. Код заполнения DBComboboxов:
Код:
procedure TFormMain.FormActivate(Sender: TObject);
begin
 try
  DataModule3.IBDataBase1.Connected:=true;
  except
  Showmessage('Нет базы');
  end;
  if DataModule3.IBDataBase1.Connected then
  begin
   DataModule3.IBDataSet2.Active:=False;
   DataModule3.IBDataSet2.SelectSQL.Text:='select * from TCHK_PROBA';
   DataModule3.IBDataSet2.Active:=True;
    while not DataModule3.IBDataSet2.Eof do
     begin
      DBComboBox1.Items.Add(DataModule3.IBDataSet2.FieldByName('NAME').AsString);
      DataModule3.IBDataSet2.Next;
     end;
   DataModule3.IBDataSet1.Active:=False;
   DataModule3.IBDataSet1.SelectSQL.Text:='select * from SHAXTA';
   DataModule3.IBDataSet1.Active:=True;
   while not DataModule3.IBDataSet1.Eof do
     begin
      DBComboBox2.Items.Add(DataModule3.IBDataSet1.FieldByName('NAME').AsString);
      DataModule3.IBDataSet1.Next;
     end;
     end;
end;
Admin: Незабываем про теги!

Последний раз редактировалось Admin, 31.05.2009 в 16:25.
Ответить с цитированием
  #2  
Старый 31.05.2009, 16:09
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

1.Лично я делал так:
Код:
procedure cmbBox1Enter(Sender:TObject);
begin
uQuery.Close;
uQuery.SQL.Text:='SELECT n_shaxt FROM shaxti';
uQuery.Open;
end;

procedure cmbBox2Enter(Sender:TObject);
begin
stQuery1.Close;
stQuery1.SQL.Text:='SELECT to_shaxt FROM tchk_shaxt WHERE n_shaxt = "'+cmbBox1+'" GROUP BY to_shaxt';
stQuery1.Open;
end;
2. Мне кажется, что будет намного лучше и выгоднее, (на данном примере это видно), если обьединить табл. спис. шахт и спис. точек замера в одну таблицу.
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 01.06.2009, 09:55
ЮЛК@ ЮЛК@ вне форума
Прохожий
 
Регистрация: 26.03.2009
Сообщения: 2
Репутация: 10
Радость

Спасибо большое за помощь! Неожидала, что кто-то откликнется
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter