Общие сведения

Стандарт языка SQL предусматривает два способа формирования SQL-запросов: интерактивный и динамический. При использовании интерактивного способа текст SQL-запроса полностью определяется при формулировании запроса, и запрос сразу готов к выполнению. Динамический способ формирования SQL-запросов используется в приложениях. Формирование запроса в этом случае может осуществляться двумя способами.

Первый способ

Многократное выполнение SQL-оператора с заменой формальных параметров фактическими (см. документ «СУБД ЛИНТЕР. Встроенный SQL»).

SQL-оператор подготавливается для выполнения и хранится в пользовательском приложении. Такой оператор может быть выполнен либо сразу, либо позднее, причем допускается любое количество вызовов. Подготовленный оператор может быть полностью специфицирован (и тогда он совпадает с командным SQL-запросом) или включать в себя неопределенные значения, называемые параметрами. Параметры могут быть входными и выходными. В выходные параметры помещаются результаты выполнения запроса. Присвоение значений входным параметрам и окончательное формирование текста SQL-оператора возлагается на приложение. Способ присвоения значений входным параметрам определяется логикой и интерфейсом приложения (программное вычисление, интерактивный ввод, извлечение из БД и др.). Процесс связывания входных параметров с частично подготовленным SQL-оператором определяется инструментальными средствами разработки приложения.

Данный способ выполнения SQL-запросов подобен функциям или процедурам: функция имеет тело функции (которое не меняется) и набор аргументов (параметров), которые при каждом вызове имеют различные значения и заменяют в теле функции формальные параметры. Аналогично: частично подготовленный SQL-оператор имеет неизменяемое тело оператора и набор формальных параметров, вместо которых перед каждым выполнением запроса подставляются их фактические значения.

После того, как необходимость в использовании такого оператора отпадает, он может быть удален, при этом будут освобождены занятые этим оператором системные ресурсы.

Второй способ

Однократное выполнение оператора с заменой формальных параметров фактическими.

В этом случае SQL-оператор подготавливается к выполнению и сразу же выполняется, после чего все использованные этим оператором ресурсы немедленно освобождаются. Определение значений входных параметров и привязка их к тексту SQL-оператора осуществляются так же, как и в первом случае, однако разрыв между стадией подготовки оператора и его выполнением не предусмотрен. Данный способ предполагает полную подготовку SQL-оператора перед каждым выполнением, поэтому в процессе подготовки оператора, кроме привязки значений параметров, можно менять и собственно текст SQL-оператора.