Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2691/nhibernate/src/NHibernate/Impl
Modified Files:
SessionImpl.cs
Log Message:
Implements SQL querying/loading as per 2.1!
Index: SessionImpl.cs
===================================================================
RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl/SessionImpl.cs,v
retrieving revision 1.76
retrieving revision 1.77
diff -C2 -d -r1.76 -r1.77
*** SessionImpl.cs 26 Mar 2005 12:30:24 -0000 1.76
--- SessionImpl.cs 27 Mar 2005 23:30:27 -0000 1.77
***************
*** 13,16 ****
--- 13,17 ----
using NHibernate.Persister;
using NHibernate.Proxy;
+ using NHibernate.SqlTypes;
using NHibernate.Type;
using NHibernate.Util;
***************
*** 5248,5251 ****
--- 5249,5268 ----
}
+ SqlType[] positionalTypes = new SqlType[ queryParameters.PositionalParameterTypes.Length ];
+ for ( int i = 0; i < queryParameters.PositionalParameterTypes.Length; i++ )
+ {
+ IType type = queryParameters.PositionalParameterTypes[ i ] ;
+ positionalTypes[ i ] = type.SqlTypes( factory )[ 0 ];
+ }
+
+ IDictionary namedTypes = new Hashtable( queryParameters.NamedParameters.Count );
+ foreach( DictionaryEntry de in queryParameters.NamedParameters )
+ {
+ string name = (string) de.Key;
+ TypedValue typedval = (TypedValue) de.Value;
+ IType type = typedval.Type;
+ namedTypes[ name ] = type.SqlTypes( factory )[ 0 ];
+ }
+
ISqlLoadable[] persisters = new ISqlLoadable[ classes.Length ] ;
for ( int i = 0; i < classes.Length; i++ )
***************
*** 5255,5259 ****
// TODO: 2.1+ We could cache these
! SqlLoader loader = new SqlLoader( aliases, persisters, factory, sqlQuery, querySpaces );
AutoFlushIfRequired( loader.QuerySpaces );
--- 5272,5277 ----
// TODO: 2.1+ We could cache these
! // NB In NHibernate we need the queryParameters to obtain the types of positional parameters
! SqlLoader loader = new SqlLoader( aliases, persisters, factory, sqlQuery, querySpaces, positionalTypes, namedTypes );
AutoFlushIfRequired( loader.QuerySpaces );
|