From: Michael D. <mik...@us...> - 2004-10-31 04:31:15
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14662/NHibernate/Hql Modified Files: QueryTranslator.cs Log Message: Added class QueryParameters to reduce the number of params in methods. It was taken from h2.1.6 Index: QueryTranslator.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql/QueryTranslator.cs,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** QueryTranslator.cs 20 Sep 2004 03:00:18 -0000 1.46 --- QueryTranslator.cs 31 Oct 2004 04:30:59 -0000 1.47 *************** *** 924,938 **** } ! public IEnumerable GetEnumerable(object[] values, IType[] types, RowSelection selection, ! IDictionary namedParams, IDictionary lockModes, ISessionImplementor session) { ! SqlString sqlWithLock = ApplyLocks(SqlString, lockModes, session.Factory.Dialect); IDbCommand st = PrepareCommand( sqlWithLock, ! values, types, namedParams, selection, false, session); ! IDataReader rs = GetResultSet( st, selection, session ); ! return new EnumerableImpl(rs, st, session, ReturnTypes, ScalarColumnNames, selection ); } --- 924,937 ---- } ! public IEnumerable GetEnumerable(QueryParameters parameters, ISessionImplementor session) { ! SqlString sqlWithLock = ApplyLocks(SqlString, parameters.LockModes, session.Factory.Dialect); IDbCommand st = PrepareCommand( sqlWithLock, ! parameters, false, session); ! IDataReader rs = GetResultSet( st, parameters.RowSelection, session ); ! return new EnumerableImpl(rs, st, session, ReturnTypes, ScalarColumnNames, parameters.RowSelection ); } *************** *** 1057,1070 **** } ! public IList FindList( ! ISessionImplementor session, ! object[] values, ! IType[] types, ! bool returnProxies, ! RowSelection selection, ! IDictionary namedParams, ! IDictionary lockModes) { ! return base.Find(session, values, types, returnProxies, selection, namedParams, lockModes); } --- 1056,1063 ---- } ! ! public IList FindList(ISessionImplementor session, QueryParameters parameters, bool returnProxies) { ! return base.Find( session, parameters, returnProxies ); } *************** *** 1235,1239 **** } - /// <summary> /// Creates an IDbCommand object and populates it with the values necessary to execute it against the --- 1228,1231 ---- *************** *** 1241,1248 **** /// </summary> /// <param name="sqlString">The SqlString to convert into a prepared IDbCommand.</param> ! /// <param name="values">The values that should be bound to the parameters in the IDbCommand</param> ! /// <param name="types">The IType for the value</param> ! /// <param name="namedParams">The HQL named parameters.</param> ! /// <param name="selection">The RowSelection to help setup the CommandTimeout</param> /// <param name="scroll">TODO: find out where this is used...</param> /// <param name="session">The SessionImpl this Command is being prepared in.</param> --- 1233,1237 ---- /// </summary> /// <param name="sqlString">The SqlString to convert into a prepared IDbCommand.</param> ! /// <param name="parameters"></param> /// <param name="scroll">TODO: find out where this is used...</param> /// <param name="session">The SessionImpl this Command is being prepared in.</param> *************** *** 1254,1258 **** /// namedParams parameters. /// </remarks> ! protected override IDbCommand PrepareCommand(SqlString sqlString, object[] values, IType[] types, IDictionary namedParams, RowSelection selection, bool scroll, ISessionImplementor session) { SqlString sql = null; --- 1243,1247 ---- /// namedParams parameters. /// </remarks> ! protected override IDbCommand PrepareCommand(SqlString sqlString, QueryParameters parameters, bool scroll, ISessionImplementor session) { SqlString sql = null; *************** *** 1282,1288 **** { ! for( int i=0; i<types.Length; i++ ) { ! string[] colNames = new string[types[i].GetColumnSpan(factory)]; for( int j=0; j<colNames.Length; j++ ) { --- 1271,1277 ---- { ! for( int i=0; i<parameters.PositionalParameterTypes.Length; i++ ) { ! string[] colNames = new string[ parameters.PositionalParameterTypes[i].GetColumnSpan(factory)]; for( int j=0; j<colNames.Length; j++ ) { *************** *** 1290,1296 **** } ! Parameter[] parameters = Parameter.GenerateParameters( factory, colNames , types[i] ); ! foreach(Parameter param in parameters) { sqlPartIndex = paramIndexes[paramIndex]; --- 1279,1285 ---- } ! Parameter[] sqlParameters = Parameter.GenerateParameters( factory, colNames , parameters.PositionalParameterTypes[i] ); ! foreach(Parameter param in sqlParameters) { sqlPartIndex = paramIndexes[paramIndex]; *************** *** 1301,1310 **** } ! if( namedParams!=null && namedParams.Count > 0 ) { // convert the named parameters to an array of types ArrayList paramTypeList = new ArrayList(); ! foreach( DictionaryEntry e in namedParams ) { string name = (string) e.Key; --- 1290,1299 ---- } ! if( parameters.NamedParameters!=null && parameters.NamedParameters.Count > 0 ) { // convert the named parameters to an array of types ArrayList paramTypeList = new ArrayList(); ! foreach( DictionaryEntry e in parameters.NamedParameters ) { string name = (string) e.Key; *************** *** 1344,1350 **** } ! Parameter[] parameters = Parameter.GenerateParameters( factory, colNames , type ); ! foreach(Parameter param in parameters) { sqlPartIndex = paramIndexes[paramIndex]; --- 1333,1339 ---- } ! Parameter[] sqlParameters = Parameter.GenerateParameters( factory, colNames , type ); ! foreach(Parameter param in sqlParameters) { sqlPartIndex = paramIndexes[paramIndex]; *************** *** 1362,1366 **** this.sqlString = sql; ! return base.PrepareCommand(sql, values, types, namedParams, selection, scroll, session); } } --- 1351,1355 ---- this.sqlString = sql; ! return base.PrepareCommand(sql, parameters, scroll, session); } } |