[seasar-dotnet:791] Re: BooleanToIntCommandFactoryの利用について

Ryo Miyagi [E-MAIL ADDRESS DELETED]
2008年 3月 11日 (火) 23:02:43 JST


吉田さん

宮城です。

> その後Daoのメソッドを実行すると、以下のエラーが発生します。

申し訳ありません。S2Container.NETのバグでした。
次バージョンで修正いたします。

もし、急いでいるようでしたら。
Seasar.Extension.ADO.Impl.BooleanToIntCommandのソースファイルに
下記のソースコードを追加してください。

public override IDataParameterCollection Parameters
{
    get { return _parameters; }
}

以上、よろしくお願いいたします。


> いつもお世話になります。吉田@オプティクスです。
> 
> 以下の環境で、BooleanToIntCommandFactoryを使用しようとしています。
> S2Container.NET 1.3.6
> ODP.NET 10.2.0.100
> Oracle 10.1.0
> 
> Entityのフィールドをbool型で定義、対応するテーブルのフィールドはNUMBER(1,0)で
> 作成し、diconファイルのBasicCommandFactoryをBooleanToIntCommandFactoryに
> 置き換えました。
> 
>   <!--
>   <component class="Seasar.Extension.ADO.Impl.BasicCommandFactory" />
>   -->
>   <component class="Seasar.Extension.ADO.Impl.BooleanToIntCommandFactory" />
> 
> その後Daoのメソッドを実行すると、以下のエラーが発生します。
> ERROR 2008-03-11 13:11:27,405 [10]
> Seasar.Framework.Exceptions.SQLRuntimeException:
> [ESSR0071]SQLで例外が発生しました。理由はSystem.InvalidCastException: 型
> 'Seasar.Extension.ADO.Impl.BooleanToIntParameter' のオブジェクトを型
> 'Oracle.DataAccess.Client.OracleParameter' にキャストできません。
>    場所 Oracle.DataAccess.Client.OracleParameterCollection.Add(Object obj)
>    場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
> cmd, String columnName, Object value, DbType dbType,
> ParameterDirection direction)
>    場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
> cmd, String columnName, Object value, DbType dbType)
>    場所 Seasar.Extension.ADO.Types.BooleanType.BindValue(IDbCommand cmd,
> String columnName, Object value)
>    場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs(IDbCommand
> command, Object[] args, Type[] argTypes) --->
> System.InvalidCastException: 型
> 'Seasar.Extension.ADO.Impl.BooleanToIntParameter' のオブジェクトを型
> 'Oracle.DataAccess.Client.OracleParameter' にキャストできません。
>    場所 Oracle.DataAccess.Client.OracleParameterCollection.Add(Object obj)
>    場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
> cmd, String columnName, Object value, DbType dbType,
> ParameterDirection direction)
>    場所 Seasar.Extension.ADO.Types.BaseValueType.BindValue(IDbCommand
> cmd, String columnName, Object value, DbType dbType)
>    場所 Seasar.Extension.ADO.Types.BooleanType.BindValue(IDbCommand cmd,
> String columnName, Object value)
>    場所 Seasar.Extension.ADO.Impl.BasicHandler.BindArgs(IDbCommand
> command, Object[] args, Type[] argTypes)
> 
> 
> どのようにすれば、、BooleanToIntCommandFactoryを利用できますでしょうか?
> 
> 以上、宜しくお願いいたします。
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet





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