次の方法で共有


プロシージャの実行

ODBC は、プロシージャを実行するための標準のエスケープ シーケンスを定義します。 このシーケンスの構文とそれを使用するコード例については、「プロシージャ呼び出し」を参照してください。

プロシージャを実行するために、アプリは次のアクションを実行します。

  1. 任意のパラメーターの値を設定します。 詳細については、このセクションの後にある「ステートメント パラメーター」を参照してください。

  2. SQLExecDirect プロシージャを実行する SQL ステートメントを含む文字列を渡します。 このステートメントでは、ODBC または DBMS 固有の構文で定義されたエスケープ シーケンスを使用できます。DBMS 固有の構文を使用するステートメントは相互運用できません。

  3. SQLExecDirect が呼び出されると、ドライバーは次のようになります。

    • 現在のパラメーター値を取得し、必要に応じて変換します。 詳細については、このセクションの後にある「ステートメント パラメーター」を参照してください。

    • データ ソース内のプロシージャを呼び出し、変換されたパラメーター値を送信します。 ドライバーがプロシージャを呼び出す方法は、ドライバー固有です。 たとえば、SQL ステートメントを変更してデータ ソースの SQL 文法を使用し、このステートメントを実行のために送信したり、DBMS のデータ ストリーム プロトコルで定義されているリモート プロシージャ 呼び出し (RPC) メカニズムを使用してプロシージャを直接呼び出したりする場合があります。

    • プロシージャが成功したと仮定して、入力/出力パラメーター、出力パラメーター、またはプロシージャの戻り値の値を返します。 これらの値は、プロシージャによって生成された他のすべての結果 (行数と結果セット) が処理されるまで使用できない場合があります。 プロシージャが失敗した場合、ドライバーはエラーを返します。