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

Delphi Sources



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

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2013, 01:45
Аватар для Homo-Fantasmus
Homo-Fantasmus Homo-Fantasmus вне форума
Прохожий
 
Регистрация: 23.08.2011
Адрес: МО
Сообщения: 46
Версия Delphi: Delphi, Lazarus
Репутация: 10
По умолчанию Динамический запрос

Всем привет!

Нужна помощь в создании динамического запроса.

Имеется БД (Access) c двумя таблицами.
Имеется Form1 c ADOConnection, DataSource, ADOQuery2, DBLookupComboBox1и DBLookupComboBox2
Требуется чтобы по выбору какого-то значения из DBLookupComboBox1 формировался динамический запрос для последующего вывода данных в DBLookupComboBox2.
Как я это пытался сделать:
Код:
procedure TForm1.DBLookupComboBox1Click(Sender: TObject);
begin

ADOQuery2.Close;
ADOQuery2.SQL.Clear;

sql:= 'SELECT * FROM power WHERE [Модель] = Form.DBLookupComboBox1.Text';

ADOQuery2.SQL.Add(sql);
ADOQuery2.Open;
DBLookupComboBox2.KeyValue := DBLookupComboBox2.ListSource.DataSet.FieldByName(DBLookupComboBox2.KeyField).Value; 
DBLookupComboBox2.Refresh;
end;


end.

При запуске компилятора и выборе в DBLookupComboBox1 любого значения появляется ошибка: "... Параметр DBLookupComboBox1 не имеет значения по умолчанию..."

Где я накосячил ?

Последний раз редактировалось lmikle, 13.10.2013 в 03:13.
  #2  
Старый 13.10.2013, 01:54
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Homo-Fantasmus
...
sql:= 'SELECT * FROM power WHERE [Модель] = Form.DBLookupComboBox1.Text';
...
Вот это что значит? Наверное имелось ввиду так
Код:
sql:= '"SELECT * FROM power WHERE [Модель] =' + Form.DBLookupComboBox1.Text + '"';
  #3  
Старый 13.10.2013, 20:04
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Провал.

DB-компоненты созданы для связывания вашего DataSet'а c вашими глазами.
Связь происходит (чтоб было понятнее) с ячейкой, пренадлежащией активной строке.

А вы пытаетесь использовать DBLockUpComboBox для "фильтрации". При изменении значения в этом боксе изменится значение и в DataSet'e.

Нужен обычный ComboBox. Его Lines заполняются запросом вида
Код:
Select Distinct(колонка) From ваша_база.ваша таблица

После чего используется запрос, который вам привели выше.
  #4  
Старый 13.10.2013, 21:09
Аватар для Homo-Fantasmus
Homo-Fantasmus Homo-Fantasmus вне форума
Прохожий
 
Регистрация: 23.08.2011
Адрес: МО
Сообщения: 46
Версия Delphi: Delphi, Lazarus
Репутация: 10
По умолчанию

Я правельно понял? Нужно в свойствах ComboBox в Items прописать этот запрос - Select Distinct (Мощностной режим) speakers.power
Далее запрос SQL как было сказано выше

Попробовал теперь выдаёт ошибку - "Ошибочная инструкция SQL"
  #5  
Старый 13.10.2013, 21:17
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Нет, в Items вы должны записать результат запроса.
У вас какая БД и через какие компоненты реализуется подключение к БД?
  #6  
Старый 13.10.2013, 21:25
Аватар для Homo-Fantasmus
Homo-Fantasmus Homo-Fantasmus вне форума
Прохожий
 
Регистрация: 23.08.2011
Адрес: МО
Сообщения: 46
Версия Delphi: Delphi, Lazarus
Репутация: 10
По умолчанию

БД сделана в Access, подключается через ADOConnection и DataSource
Закрытая тема


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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