次の方法で共有


ストアド プロシージャを呼び出す方法 (ODBC)

SQL ステートメントで ODBC CALL エスケープ句を使用してストアド プロシージャを呼び出すと、SQL Server ドライバーは、リモート ストアド プロシージャ コール (RPC) メカニズムを使用して、プロシージャを SQL Server に送信します。RPC 要求は、SQL Server でのステートメント解析やパラメーター処理の多くを省略するため、Transact-SQL の EXECUTE ステートメントを使用するよりも高速です。

この機能を示すサンプル アプリケーションについては、CodePlex から入手できる、リターン コードと出力パラメーターを処理するサンプルを参照してください。詳細については、「SQL Server データベース エンジン サンプル」を参照してください。

プロシージャを RPC として実行するには

  1. ODBC CALL エスケープ シーケンスを使用する SQL ステートメントを作成します。このステートメントでは、各入力、入出力、出力パラメーター、およびプロシージャの戻り値 (存在する場合) に対してパラメーター マーカーを使用します。

    {? = CALL procname (?,?)}
    
  2. 各入力、入出力、出力パラメーター、およびプロシージャの戻り値 (存在する場合) に対して SQLBindParameter を呼び出します。

  3. SQLExecDirect を使用してステートメントを実行します。

注意

アプリケーションでプロシージャの送信に (ODBC CALL エスケープ シーケンスではなく) Transact-SQL の EXECUTE 構文を使用した場合、プロシージャ コールは、SQL Server ODBC ドライバーから SQL Server に、RPC ではなく SQL ステートメントとして渡されます。また、Transact-SQL の EXECUTE ステートメントを使用した場合、出力パラメーターは返されません。