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

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

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

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

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

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

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

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

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