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


Как вызывать хранимые процедуры (ODBC)

Когда инструкция SQL вызывает хранимую процедуру при помощи предложения ESCAPE ODBC CALL, драйвер Microsoft® SQL Server™ отправляет процедуру на SQL Server при помощи механизма удаленного вызова хранимой процедуры. Запросы RPC пропускают большую часть синтаксической проверки и обработки параметров инструкции в SQL Server; они быстрее, чем инструкция Transact-SQL EXECUTE.

Описание образца приложения, который демонстрирует эту функцию, см. в разделе processing return codes and output parameters на сайте CodePlex; дополнительные сведения см. в разделе Образцы компонента SQL Server Database Engine.

Выполнение процедуры с помощью RPC

  1. Сконструируйте инструкцию SQL, использующую escape-последовательность ODBC CALL. В этой инструкции для каждого входного, входного-выходного и выходного параметров, а также для возвращаемого процедурой значения (при его наличии) используются маркеры параметров.

    {? = CALL procname (?,?)}
    
  2. Вызывайте SQLBindParameter каждого входного, входного-выходного и выходного параметров, а также для возвращаемого процедурой значения (при его наличии).

  3. Выполните инструкцию с SQLExecDirect.

ПримечаниеПримечание

Если приложение отправляет процедуру при помощи синтаксиса Transact-SQL EXECUTE (в отличие от escape-последовательности ODBC CALL), драйвер SQL Server ODBC передает этот вызов процедуры SQL Server в виде инструкции SQL, а не RPC. Кроме того, при использовании инструкции Transact-SQL EXECUTE выходные параметры не возвращаются.