Delphi 3 и создание приложений баз данных

Понятие динамического запроса


Динамическим (параметрическим) является запрос, в 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)



Содержание раздела