From: NHibernate J. <mik...@us...> - 2006-10-24 23:24:35
|
[ http://jira.nhibernate.org/browse/NH-741?page=comments#action_14179 ] Fabio Maulo commented on NH-741: -------------------------------- Comment for who have a problem for this issue: The patch not work if the RDBMS don't accept parameter for every thing else <where expression>. > Invalid parameter handling when using functions > ----------------------------------------------- > > Key: NH-741 > URL: http://jira.nhibernate.org/browse/NH-741 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.0.2 > Reporter: Bentzy Lupu > Priority: Trivial > Fix For: 1.2.0.Beta2 > > The following query fails because no parameter was defined. > select category from Category category > order by dbo.Localize(category.ResourceKey, :LanguageId, category.Name) > On SQL Server, the error is: > NHibernate.ADOException: Could not execute query > ---> System.IndexOutOfRangeException: Invalid index 0 for this SqlParameterCollection with Count=0. > at System.Data.SqlClient.SqlParameterCollection.RangeCheck(Int32 index) > at System.Data.SqlClient.SqlParameterCollection.GetParameter(Int32 index) > at System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item(Int32 index) > at NHibernate.Type.Int32Type.Set(IDbCommand cmd, Object value, Int32 index) > at NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object value, Int32 index) > at NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object value, Int32 index, ISessionImplementor session) > at NHibernate.Hql.QueryTranslator.BindNamedParameters(IDbCommand ps, IDictionary namedParams, Int32 start, ISessionImplementor session) > at NHibernate.Loader.Loader.PrepareQueryCommand(SqlString sqlString, QueryParameters parameters, Boolean scroll, ISessionImplementor session) > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Object optionalObject, Object optionalId, Object[] optionalCollectionKeys, Boolean returnProxies) > at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Object optionalObject, Object optionalId, Object[] optionalCollectionKeys, Boolean returnProxies) > at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) > at NHibernate.Hql.QueryTranslator.List(ISessionImplementor session, QueryParameters queryParameters) > at NHibernate.Impl.SessionImpl.Find(String query, QueryParameters parameters) > --- End of inner exception stack trace --- > at NHibernate.Impl.SessionImpl.Find(String query, QueryParameters parameters) > at NHibernate.Impl.QueryImpl.List() > at Lib.NHRepository.FindAll[T](String hql, KeyValuePair`2[] parameters) in D:\Proj\Test\Lib\NHRepository.cs:line 34 > This query, however, pass successfully: > select category from Category category where :LanguageId = :LanguageId > order by dbo.Localize(ResourceKey, @p0, Name) > The expected result should be either an error for not recognizing the function, or successfully handling this. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |