We use MSSQL as our backend and have "checked in" stored procedures as owned by dbo. As developers are working or fixing bugs, they create stored procedures in there own name and when finished will convert them to dbo so everyone can use them. This causes errors in iBATIS. I have tracked it down to the DeriveParameters function call returns a set of parameters for each stored procedure by the same name. Then ibatis throws an ArgumentOutOfRangeException. I have included the stack trace below.

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
at IBatisNet.DataMapper.Configuration.ParameterMapping.ParameterMap.GetProperty(Int32 index) at IBatisNet.DataMapper.Commands.DefaultPreparedCommand.ApplyParameterMap(IDalSession session, IDbCommand command, RequestScope request, IStatement statement, Object parameterObject) at IBatisNet.DataMapper.Commands.DefaultPreparedCommand.Create(RequestScope request, IDalSession session, IStatement statement, Object parameterObject) at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForRowDelegate(IDalSession session, Object parameterObject, RowDelegate rowDelegate) at IBatisNet.DataMapper.SqlMapper.QueryWithRowDelegate(String statementName, Object parameterObject, RowDelegate rowDelegate)
   at
...

I assume many people work like this. Is there a workaround? I relize this might be a MSSQL or ADO.Net issue, but it would be nice to have a workable solution till they can get it fixed.

Thanks

--
Michael Schall

Reply via email to