SQL Server ストアド プロシージャには、データを返すために使用される 4 つのメカニズムがあります。
プロシージャ内の各 SELECT ステートメントによって結果セットが生成されます。
プロシージャは、出力パラメーターを使用してデータを返すことができます。
カーソル出力パラメーターは、Transact-SQL サーバー カーソルを返すことができます。
プロシージャには、整数のリターン コードを指定できます。
アプリケーションは、ストアド プロシージャからのこれらすべての出力を処理できる必要があります。 CALL ステートメントまたは EXECUTE ステートメントには、戻りコードと出力パラメーターのパラメーター マーカーを含める必要があります。 SQLBindParameter を使用して、すべてを出力パラメーターとしてバインドします。SQL Server Native Client ODBC ドライバーは、バインドされた変数に出力値を転送します。 出力パラメーターとリターン コードは、SQL Server によってクライアントに返される最後の項目です。 SQLMoreResults がSQL_NO_DATAを返すまで、アプリケーションには返されません。
ODBC では、カーソル パラメーター Transact-SQL バインドはサポートされていません。 プロシージャを実行する前にすべての出力パラメーターをバインドする必要があるため、出力カーソル パラメーターを含む Transact-SQL ストアド プロシージャを ODBC アプリケーションで呼び出すことはできません。