Поделиться через


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.