[ 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
|