![]() |
|
#1
|
||||
|
||||
![]() В базе данных несколько таблиц: Театры, Кинотеатры, Рестораны.
На форме ComboBox, DBGrid, ADOQuery, ADOConnection, DataSource Как сделать так, чтобы в Комбобоксе можно было выбирать названия таблиц (Театры, Кинотеатры, Рестораны), а в Гриде отображалось содержимое таблиц ? Какие свойства компонентов поставить и какой код прописать? БД в SQL. Прошу прощения за примитивный вопрос, но я в делфи совсем начинающий. Если не в ту ветку залезла, перенаправьте, пожалуйста. Нуб в Delphi ![]() ![]() Последний раз редактировалось Raccoon, 07.05.2008 в 16:36. |
#2
|
|||
|
|||
![]() Вариант 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
|
||||
|
||||
![]() этот код у меня не совсем работает. Выполняется запрос, который был объявлен как константа. Остальные - нет. Или может, я что-то не так делаю?
Использовать надо обычный ComboBox? Нуб в Delphi ![]() ![]() |
#4
|
||||
|
||||
![]() ой, похоже, разобралась. спасибо огромное!!! =)
Нуб в Delphi ![]() ![]() |
#5
|
||||
|
||||
![]() А если мне нужен изначально запрос не 'SELECT * FROM %s', а, например, SELECT Название, Адрес, Телефон, Округ FROM %s JOIN Area ON %s.IDокр=Area.ID
Как его объявить? Так, как написано выше, не получается. Выдаёт ошибку. Нуб в Delphi ![]() ![]() |