Escape-последовательность вызова процедуры
ODBC использует escape-последовательности для вызовов процедур. Синтаксис этой escape-последовательности выглядит следующим образом:
{[?=]call procedure-name[([параметр][,[параметр]...)]}
В нотации BNF синтаксис выглядит следующим образом:
ODBC-procedure-escape ::=
| Процедура вызова ODBC-esc-initiator [?=] вызываемая процедура ODBC-esc-terminator
procedure ::= procedure-name procedure-name | (procedure-parameter-list)
идентификатор процедуры ::= определяемое пользователем имя
имя процедуры ::= идентификатор процедуры
| имя владельца.идентификатор процедуры
| catalog-name catalog-separator procedure-identifier
| catalog-name catalog-separator [owner-name].идентификатор процедуры
(Третий синтаксис действителен, только если источник данных не поддерживает владельцев.)
owner-name ::= определяемое пользователем имя
catalog-name ::= определяемое пользователем имя
разделитель каталога ::= {реализация определена}
(Разделитель каталога возвращается через SQLGetInfo с параметром SQL_CATALOG_NAME_SEPARATOR сведения.)
procedure-parameter-list ::= procedure-parameter
| procedure-parameter, procedure-parameter-list
procedure-parameter ::= динамический литерал | параметров | пустой строкой
empty-string ::=
ODBC-esc-initiator ::= {
ODBC-esc-terminator ::= }
(Если параметр процедуры является пустой строкой, процедура использует значение по умолчанию для этого параметра.)
Чтобы определить, поддерживает ли источник данных процедуры и драйвер поддерживает синтаксис вызова процедуры ODBC, приложение может вызвать SQLGetInfo с типом сведений SQL_PROCEDURES.