Подстановки в SQL-запросе

  Вставка значения аргумента в базу данных

  Запись в аргумент значения из базы данных

  Особенности использования аргумента в условии

  Модификация запросов в реальном времени

В зависимости от направления передачи данных, подстановки в SQL-запросе имеют различный синтаксис.

Вставка значения аргумента в базу данных

При вставке значения аргумента в базу данных в подстановке используются одинарные кавычки:

#<имя аргумента>#

Например:

INSERT INTO TAB1

(M_VALUE)

VALUES

('#ch1_R#')

При построении запроса с помощью мастера подстановки создаются в правильном формате автоматически.

Если запрос создается вручную, при вводе знака # на экране появляется диалог выбора аргумента:

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

Запись в аргумент значения из базы данных

При записи в аргумент значения из базы данных одинарные кавычки в подстановке не используются:

#<имя аргумента>#

Например:

SELECT

TAB1.M_VALUE #ch2_In#

FROM TAB1

Особенности использования аргумента в условии

Если значение аргумента – это значение даты и времени, то при использовании такого аргумента в предложении WHERE следует учитывать синтаксис Microsoft Access для временных меток.

Мастер запросов строит предложение WHERE в следующем формате:

WHERE mTime > #ARG_000#

Если сравнение должно быть произведено как по времени, так и по дате, предложение следует отредактировать следующим образом:

WHERE mTime > {ts '#ARG_000#'}

Модификация запросов в реальном времени

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

Пример с оператором INSERT:

INSERT INTO #ARG_000#

( #ARG_002# )

VALUES

( '#ARG_001#' )

Пример с оператором SELECT:

SELECT m_val #ARG_003#

FROM #ARG_000#

Две подстановки подряд использовать нельзя, поэтому, например, запрос SELECT #ARG_002# #ARG_003# FROM #ARG_000# не будет выполнен.