[seasar-dotnet:2240] Re: [S2Dao.NET]ORACLEのストアド呼び出しでout stringパラメータを''で返すとInvalidCastExceptionが発生する

kotani.k [E-MAIL ADDRESS DELETED]
2013年 2月 19日 (火) 23:11:51 JST


koalaさん

ご確認&ご提案ありがとうございます。
仰る通りだと思います。
いつになる、とは言えないのですが、検討させていただきます。

以上です。

2013年2月15日 12:47 koala <send2xls @ hotmail.com>:
>
> 小谷さん
> お世話になっております。koalaです。
>
>> >> Seasar.Dao.Impl.ObjectBasicProcedureHandler.cs
>> >>
>> >>>修正前
>> >> args[i] = ((IDataParameter)cmd.Parameters[i + cnt]).Value;
>> >>
>> >>>修正後
>> >> IDbDataParameter param = (IDbDataParameter)cmd.Parameters[i + cnt];
>> >> args[i] = ConversionUtil.ConvertTargetType(param.Value, ArgumentTypes[i]);
>
>> ConversionUtil.ConvertTargetTypeでやっている処理を考えると、
>> koalaさんが挙げて下さった二案目(ConversionUtil.ConvertTargetTypeを使う方)が
>> 処理・戻り値としてもコードの見た目の意味でも正なように思えます。
>>
>> 上記修正でコミットしてみました。
>> お手数ですが、Seasar.NETの最新コードを取得・コンパイルしてご確認いただけないでしょうか。
>
> ObjectBasicProcedureHandler.cs を最新版に差し替えて、
> 件名のExceptionが解消されたことを確認できました。
> お忙しいところご対応ありがとうございました。
>
> コードの見た目という意味では、ret = param.Value; の方も
> 変換してしまった方が良い気もしてきました。
> ・・・となると HashtableBasicProcedureHandler.cs の方も・・・
>
> ORACLEでの「動作としては」現状でOKなので、何か出てきたときに対応で十分だと思います。
>
> 以上です。
>
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


seasar-dotnet メーリングリストの案内