[seasar-dotnet:1121] Re: DBFlute 0.8.3 リリース

kubo [E-MAIL ADDRESS DELETED]
2008年 11月 6日 (木) 20:56:00 JST


久保(jflute)です。

こちら(Oracle)でも再現致しました。
(ちょっとテストの仕方で甘い部分がございました。。。)

戻り値が存在していて、かつ、OUTパラメータが存在する場合に発生するようです。
OracleだとファンクションでOUTパラメータを使うと発生しました。
恐らく発生したプロシージャは戻り値が存在するものではないでしょうか?

InternalProcedureHandler.vmnetを以下のURLから取得して、
お手元のものを差し替えて試していただけないでしょうか?
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute/templates/om/csharp/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.vmnet

2008/11/6 Nakai <[E-MAIL ADDRESS DELETED]>:
> 久保さん
>
> String型のOUTPUTパラメータでは、エラーは起きませんが、
> 結果がおかしいです。
>
> 実行したプロシージャのパラメータは
> @inputA varchar(8) = null,
> @inputB varchar(8) = null,
> @outputA char(1) = null output
>
> の3つですが、[E-MAIL ADDRESS DELETED][E-MAIL ADDRESS DELETED]に設定した値が入っています。
>
> エラーになった時のパラメータは
> @inputA varchar(8) = null,
> @inputB varchar(8) = null,
> @outputA int = null output
>
> なので、@inputBの文字列をintの@outputAに入れようとしてエラーに
> なっているのかもしれません。
>
> スタックトレースは、調査に支障のない範囲でマスクさせていただきました。
>
> 以上、よろしくお願いいたします。
>
> --------------------------------------------------------------
> 場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.DbExceptionHandler.ThrowSQLFailureException(Exception e, IDbCommand cmd, String completeSql)
> 場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.DbExceptionHandler.HandleDbException(Exception e, IDbCommand cmd, Boolean uniqueConstraintValid, String completeSql)
> 場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.InternalBasicHandler.HandleDbException(Exception e, IDbCommand cmd, Boolean uniqueConstraintValid)
> 場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.InternalProcedureHandler.Execute(IDbConnection conn, Object[] args, Type[] argTypes)
> 場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.InternalBasicSelectHandler.Execute(Object[] args, Type[] argTypes)
> 場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.InternalBasicSelectHandler.Execute(Object[] args)
> 場所 XXX.AllCommon.S2Dao.Internal.SqlCommand.InternalProcedureCommand.Execute(Object[] args)
> 場所 XXX.AllCommon.S2Dao.S2DaoInterceptor.DispatchInvoking(IMethodInvocation invocation)
> 場所 XXX.AllCommon.S2Dao.S2DaoInterceptor.Invoke(IMethodInvocation invocation)
> 場所 Seasar.Framework.Aop.Proxy.DynamicAopProxy.Intercept(IInvocation invocation, Object[] args)
> 場所 ProxyInterfaceSystemSystemObject_XXX_AllCommon_CBean_OutsideSqlOutsideSqlDao_System_Runtime_SerializationISerializable.Call(String path, Object pmb, OutsideSqlOption option)
> 場所 XXX.AllCommon.CBean.OutsideSql.Executor.OutsideSqlBasicExecutor.Call(ProcedurePmb pmb)
> 場所 XXX
> 場所 CProxyTypeXXX.callback__ConfirmMember4EveryCom(String , String )
> 場所 CProxyTypeXXX.__delegate_3.Call(Object[] )
> 場所 Castle.DynamicProxy.Invocation.AbstractInvocation.Proceed(Object[] args)
> 場所 Seasar.Framework.Aop.Impl.DynamicProxyMethodInvocation.Proceed()
> 場所 Seasar.Extension.Tx.Impl.LocalRequiredTxHandler.HandleTransaction(IMethodInvocation invocation)"
> --------------------------------------------------------------------------------
>
>
>
>
>
> kubo <[E-MAIL ADDRESS DELETED]> wrote:
>
>> 久保(jflute)です。
>>
>> 中井さん、こんばんは
>>
>> 申し訳ありません。
>> この件、まさしくここの修正で影響出たかもしれません。
>> http://ml.seasar.org/archives/seasar-dotnet/2008-October/001106.html
>>
>> 取り急ぎ確認ですが:
>>
>> エラーメッセージですが、もう少し詳細なものを頂けないでしょうか?
>> (スタックトレースとかないでしょうか?)
>>
>> また、String型のOUTPUTパラメータでは発生しますでしょうか?
>>
>> 2008/11/6 Nakai <[E-MAIL ADDRESS DELETED]>:
>> > 久保さん
>> >
>> > いつもお世話になっております。中井です。
>> > リリース後の報告になってしまいすいません。
>> >
>> > 0.8.3にアップ後のC#+SQLServer2005の
>> > ストアドプロシージャ実行でエラーになってしまいました。
>> >
>> > 【エラーメッセージ】
>> > {"型 'System.String' のオブジェクトを型 'System.Nullable`1[System.Int32]' に変換できません。"}
>> >
>> >
>> > 発生したストアドプロシージャの特徴はint型のOutputパラメータがある点です。
>> > outputパラメータ無では正常終了しました。
>> >
>> > 以上、よろしくお願いいたします。
>> >
>> >
>> >> 久保(jflute)です。
>> >>
>> >> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.8.3.zip
>> >> (DBFlute-0.8.3のSNAPSHOT)
>> >>
>> >> にて対応しました。
>> >> お手数ですが、ご確認頂けますでしょうか?
>> >> (dbflute-noracle-exampleにてExampleもございます)
>> >>
>> >> また、C#版DBFluteはテスト環境がMySQLとOracleしか
>> >> ありません。(Java版は7DB全てあるのですが...)
>> >> 他のDBでのプロシージャ実行に影響あるかどうかが
>> >> 確認できませんので、もしよろしければ、
>> >> ML読んでるどなたか試して頂けると非常に助かります。
>> >
>> >
>> > kubo <[E-MAIL ADDRESS DELETED]> wrote:
>> >
>> >> 久保(jflute)です。
>> >>
>> >> DBFlute-0.8.3をリリースしました。
>> >> http://dbflute.sandbox.seasar.org/index.html
>> >>
>> >> こちらのURLでダウンロード可能です。
>> >> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.8.3.zip
>> >>
>> >> DBFlute-0.8.2から0.8.3への移行時の注意
>> >> http://dbflute.sandbox.seasar.org/contents/migration/migrate-082to083.html
>> >> ※JDBCドライバ「db2java.zip」をご利用の方必ずご覧ください。
>> >>
>> >> {NEW}
>> >> (DBFLUTE-367){C#}: Oracleのストアドファンクションに対応する
>> >> (DBFLUTE-366){Java/C#}: データエクセルのテンプレートをダンプする
>> >> (DBFLUTE-365){Java}: MsAccessでInsert後のIdentityの取得に対応する
>> >> _______________________________________________
>> >> seasar-dotnet mailing list
>> >> [E-MAIL ADDRESS DELETED]
>> >> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>> >
>> > _______________________________________________
>> > seasar-dotnet mailing list
>> > [E-MAIL ADDRESS DELETED]
>> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>> >
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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