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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.05.2008, 16:19
Аватар для Raccoon
Raccoon Raccoon вне форума
Прохожий
 
Регистрация: 07.05.2008
Сообщения: 20
Репутация: 10
По умолчанию Вечный ComboBox

В базе данных несколько таблиц: Театры, Кинотеатры, Рестораны.
На форме ComboBox, DBGrid, ADOQuery, ADOConnection, DataSource
Как сделать так, чтобы в Комбобоксе можно было выбирать названия таблиц (Театры, Кинотеатры, Рестораны), а в Гриде отображалось содержимое таблиц ? Какие свойства компонентов поставить и какой код прописать?
БД в SQL.
Прошу прощения за примитивный вопрос, но я в делфи совсем начинающий.
Если не в ту ветку залезла, перенаправьте, пожалуйста.
__________________
Нуб в Delphi Прошу проникнуться.

Последний раз редактировалось Raccoon, 07.05.2008 в 16:36.
Ответить с цитированием
  #2  
Старый 07.05.2008, 18:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,094
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вариант 1.
Сделать справочник "тип объекта" (кинотеатр, театр, ресторан и т.д.), а все данные свалить в одну таблицу, сделав там ссылку на вышеупомянутый справочник. Это если правильно делать.

Вариант 2. Если правильно делать влом или унаследованная систем.
Проблему решает динамическое формирование запроса, куда вставляется имя таблицы. На изменение содержимого ComboBox пишем следующий код:
Код:
const
  CSQL : String = 'SELECT * FROM %s';
var
  ATableName : String;
begin
  ADOQuery1.Active := False;
  ADOQuery1.SQL.Clear;
  Case ComboBox1.ItemIndex Of
    0 : ATableName := 'Имя_таблицы_с_театрами';
    1 : ATableName := 'Имя_таблицы_с_кинотеатрами';
    2 : ATableName := 'Имя_таблицы_с_ресторанами';
  End;
  ADOQuery1.SQL.Add(Format(CSQL,[ATableName]);
  ADOQuery1.Active := True;
end;
Ответить с цитированием
  #3  
Старый 08.05.2008, 00:42
Аватар для Raccoon
Raccoon Raccoon вне форума
Прохожий
 
Регистрация: 07.05.2008
Сообщения: 20
Репутация: 10
По умолчанию

этот код у меня не совсем работает. Выполняется запрос, который был объявлен как константа. Остальные - нет. Или может, я что-то не так делаю?
Использовать надо обычный ComboBox?
__________________
Нуб в Delphi Прошу проникнуться.
Ответить с цитированием
  #4  
Старый 08.05.2008, 01:43
Аватар для Raccoon
Raccoon Raccoon вне форума
Прохожий
 
Регистрация: 07.05.2008
Сообщения: 20
Репутация: 10
По умолчанию

ой, похоже, разобралась. спасибо огромное!!! =)
__________________
Нуб в Delphi Прошу проникнуться.
Ответить с цитированием
  #5  
Старый 10.05.2008, 14:27
Аватар для Raccoon
Raccoon Raccoon вне форума
Прохожий
 
Регистрация: 07.05.2008
Сообщения: 20
Репутация: 10
По умолчанию

А если мне нужен изначально запрос не 'SELECT * FROM %s', а, например, SELECT Название, Адрес, Телефон, Округ FROM %s JOIN Area ON %s.IDокр=Area.ID
Как его объявить? Так, как написано выше, не получается. Выдаёт ошибку.
__________________
Нуб в Delphi Прошу проникнуться.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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