![]() |
|
#4
|
||||
|
||||
![]() Я говорил удалить фразу "with", а Вы говорите про "while". Это разные вещи. Когда Вы пишете
Код:
ADOQuery1.Close; ADOQuery1.SQL.Clear; Да, и ещё. Закрывать датасет командой Close не нужно, т.к. команда Clear автоматически вызовет закрытие. Теперь по сути вопроса. Вам нужно, имея на входе текст, соответствующий значению поля таблицы (например, "Машина"), находить запись, где этот текст прописан, и отображать другое поле из этой записи. Это можно сделать либо поиском, либо фильтрацией (через свойство Filter датасета, либо через текст запроса). Раз Вы делаете динамический запрос, тогда проще всего условие фильтрации прописать в тексте запроса, примерно так: Код:
ADOQuery1.SQL.Clear; // Close - не надо! ADOQuery1.SQL.Add('SELECT scnazva, fraza FROM katalog'); ADOQuery1.SQL.Add('WHERE scnazva = "' + combobox1.Text + '"'); // по идее здесь должно быть DBComboBoxEh2 вместо combobox1, если я правильно понял по тексту Вашей программы. ADOQuery1.SQL.Add('ORDER BY scnazva'); // Это по желанию, сортировка по полю scnazva (можно и по полю fraza, а можно и вообще убрать строку сортировки). ADOQuery1.Open; Да, ещё не совсем понятно, зачем динамически создавать датасет. Не проще ли создать его статически и не тратить процессорное время на создание и уничтожение объектов? Последний раз редактировалось Guaho, 26.05.2021 в 20:27. |