2012-04-09 15 views
0

Ado.netでは、コードは入力パラメータと出力パラメータを持つストアドプロシージャを呼び出しています。ADO.Netとストアドプロシージャの出力パラメータ

入力パラメータの一部がオプション(SPにデフォルト値を持つ)である場合、コードは必要でない限りパラメータ値を定義して送信する必要はありません。

私の質問は オプションの出力パラメータにも同じことが適用されますか?コードはオプションの(デフォルト値を持つ)SP出力パラメータを無視できますか?

私はそれを自分でテストすることができましたが、私は今実用的な例がなく、私は時間が足りません。

ありがとう。

答えて

3

はい。パラメータにデフォルト値がある場合は、パラメータの方向(INPUTまたはOUTPUT)に関係なく、安全に省略することができます。プロシージャがADO.Netから呼び出されたという事実は全く無関係です。例:

create procedure usp_test 
    @a int = 1 output, 
    @b int = 2 
as 
begin 
    set @a = @b; 
end 
go 

exec usp_test 

かどうか(つまりOUTPUTパラメータ、戻り値を無視して。)、完全手順、アプリの詳細までですビューのビジネスルールの観点から行うことが安全です。

1

EDIT:ここでは間違っていましたが、SqlParameterの情報が役立つ可能性があるため、私は答えを残します。しかし、不正確には申し訳ありません。

私はそう信じません。 OUTPUTパラメータを送信する必要があります.ADO.NETでは、これはParameterDirectionプロパティがParameterDirection.Outputに設定されたSqlParameterを追加することによって実行されます。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.direction.aspx

http://msdn.microsoft.com/en-us/library/system.data.parameterdirection.aspx

+0

+1答えが間違っていたことを認めてください:) –

関連する問題