Параметризованные запросы (визуальные инструменты для баз данных)
В некоторых случаях нужно создать запрос, который можно использовать многократно, на каждый раз с разными значениями. Например: можно часто запускать запрос, чтобы найти все title_ids, записанные одним автором, можно выполнять один запрос для каждого поиска, меняя только идентификатор автора.
Чтобы создать запрос, который в разное время может иметь разные значения, используются параметры запроса. Параметр — это метка-заполнитель для значения, которое предоставляется при запуске запроса. Инструкция SQL с параметром может выглядеть следующим образом, где «?» представляет параметр для идентификатора автора:
SELECT title_idFROM titleauthorWHERE (au_id = ?)
Где можно использовать параметры
Параметры можно использовать как метки-заполнители для литеральных значений — текстовых или числовых. Наиболее часто параметры используются в качестве меток-заполнителей в условиях поиска отдельных строк или групп строк (то есть в предложениях WHERE и HAVING инструкций SQL).
Параметр можно использовать в качестве меток-заполнителей в выражениях. Например можно вычислять цены со скидками, предоставляя различное значение скидки при каждом запуске запроса. Для этого нужно указать следующее выражение:
(price * ?)
Подробные сведения о том, где можно использовать эти параметры, см. в разделе Маркеры параметров (компонент Database Engine).
Именованные и неименованные параметры
Можно задать два типа параметров: именованные и неименованные. Неименованный параметр — это восклицательный знак, который можно подставлять в любое место запроса, в котором нужно запросить соответствующее литеральное значение. Например, если неименованный параметр используется для поиска идентификатора автора в таблице titleauthor, то полученная в результате инструкция в области «SQL» может выглядеть следующим образом:
SELECT title_idFROM titleauthorWHERE (au_id = ?)
При выполнении запроса в конструкторе запросов и представлений в диалоговом окне Параметры запроса появляется «?» в качестве имени параметра.
Можно также присвоить имя параметру. Именованные параметры особенно полезны, если в запросе имеется несколько параметров. Например, если именованный параметр используется для поиска имени и фамилии автора в таблице authors, то полученная в результате инструкция в области «SQL» может выглядеть следующим образом:
SELECT au_idFROM authorsWHERE au_fname = %first name% AND au_lname = %last name%
Совет |
---|
Перед тем как создать запрос с именованным параметром, необходимо определить символы префикса и суффикса. |
При выполнении запроса в конструкторе запросов и представлений в диалоговом окне Параметры запроса появляется список именованных параметров.