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