Понятие динамического запроса
Динамическим (параметрическим) является запрос, в SQL-операторе которого в процессе выполнения приложения могут изменяться отдельные его составляющие В этом случае изменяемая часть оператора оформляется как параметры.
Например, пусть в процессе выполнения приложения может быть выдан запрос 'выдать все записи из таблицы RASHOD, относящиеся к расходу товара "Сахар" со склада 10 января 1997 г.'
SELECT *
FROM RASHOD
WHERE (TOVAR = "Сахар") AND
(DAT_RASH = "10.01.97")
и запрос выдать все записи из таблицы RASHOD, относящиеся к расходу товара "Кока-кола" со склада 20 января 1997 г.'
SELECT *
FROM RASHOD
WHERE (TOVAR = "Кока-кола") AND
(DAT_RASH = "20.01.97")
а также аналогичный запрос по расходу других товаров за другие даты. Конечно, каждый такой запрос можно реализовать в отдельном компоненте TQuery, но только теоретически - при достаточно большом числе товаров и дат расхода число компонентов TQuery должно стремиться к бесконечности. Поэтому разумнее применить только один компонент TQuery, указав в его свойстве SQL оператор, в котором изменяющиеся части заменены на параметры:
SELECT *
FROM RASHOD
WHERE (TOVAR = :TOVAR) AND
(DAT_RASH = :DAT_RASH)
Под параметром понимается имя, предваренное кавычками ':'. В динамических запросах параметры всегда заменяют значения, которые могут изменяться в процессе выполнения. Имена параметров произвольны и могут не совпадать со значениями полей таблицы, которым они обычно ставятся в соответствие:
SELECT *
FROM RASHOD
WHERE (TOVAR = :PARAMETR1) AND
(DAT_RASH = : ZNACHENIE)