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


Выполнение процедур

ODBC определяет стандартную последовательность escape-адресов для выполнения процедур. Синтаксис этой последовательности и пример кода, использующий его, см. в разделе "Вызовы процедур".

Чтобы выполнить процедуру, приложение выполняет следующие действия:

  1. Задает значения любых параметров. Дополнительные сведения см. в разделе "Параметры инструкции" далее в этом разделе.

  2. Вызывает SQLExecDirect и передает ему строку, содержащую инструкцию SQL, которая выполняет процедуру. Эта инструкция может использовать escape-последовательность, определенную синтаксисом ODBC или СУБД; операторы, использующие синтаксис СУБД, не взаимодействуют.

  3. При вызове SQLExecDirect драйвер:

    • Извлекает текущие значения параметров и преобразует их по мере необходимости. Дополнительные сведения см. в разделе "Параметры инструкции" далее в этом разделе.

    • Вызывает процедуру в источнике данных и отправляет ему преобразованные значения параметров. Как драйвер вызывает процедуру, зависят от драйвера. Например, он может изменить инструкцию SQL, чтобы использовать грамматику SQL источника данных и отправить эту инструкцию для выполнения, или вызвать процедуру непосредственно с помощью механизма удаленного вызова процедур (RPC), определенного в протоколе потока данных СУБД.

    • Возвращает значения любых входных или выходных параметров или возвращаемых значений процедуры, если процедура выполнена успешно. Эти значения могут быть недоступны до тех пор, пока не будут обработаны все остальные результаты (количество строк и результирующие наборы), созданные процедурой. Если процедура завершается ошибкой, драйвер возвращает ошибки.