From: Michael D. <mik...@us...> - 2004-04-13 13:16:09
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23306/SqlCommand Modified Files: Parameter.cs ParameterLength.cs ParameterPrecisionScale.cs Log Message: Fixed problem with Quoting Parameters. Named Parameters now have meaningless names such as p0, p1, p2, etc... Index: ParameterLength.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/ParameterLength.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ParameterLength.cs 15 Mar 2004 14:47:07 -0000 1.2 --- ParameterLength.cs 13 Apr 2004 13:01:59 -0000 1.3 *************** *** 20,24 **** } ! public override IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider) { IDbDataParameter param = base.GetIDbDataParameter (command, provider); param.Size = length; --- 20,26 ---- } ! [Obsolete("This does not handle quoted identifiers - going to use a number based name.")] ! public override IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider) ! { IDbDataParameter param = base.GetIDbDataParameter (command, provider); param.Size = length; *************** *** 27,30 **** --- 29,40 ---- } + public override IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider, string name) + { + IDbDataParameter param = base.GetIDbDataParameter (command, provider, name); + param.Size = length; + + return param; + } + public override bool Equals(object obj) { if(base.Equals(obj)) { Index: Parameter.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/Parameter.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Parameter.cs 15 Mar 2004 14:47:07 -0000 1.3 --- Parameter.cs 13 Apr 2004 13:01:59 -0000 1.4 *************** *** 37,40 **** --- 37,41 ---- } + [Obsolete("This does not handle quoted identifiers - going to use a number based name.")] public string GetSqlName(IConnectionProvider provider){ *************** *** 42,50 **** } public string GetParameterName(IConnectionProvider provider){ return provider.Driver.FormatNameForParameter(tableAlias, name); } ! public virtual IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider) { IDbDataParameter param = command.CreateParameter(); param.DbType = dbType; --- 43,78 ---- } + /// <summary> + /// Returns a string version of the Parameter that is in the correct + /// format for the SQL in the CommandText. + /// </summary> + /// <param name="provider">The ConnectionProvider that contains the Dialect.</param> + /// <param name="name">The name to format for SQL.</param> + /// <returns>A valid SQL string for this Parameter.</returns> + public string GetSqlName(IConnectionProvider provider, string name) + { + return provider.Driver.FormatNameForSql(name); + } + + [Obsolete("This does not handle quoted identifiers - going to use a number based name.")] public string GetParameterName(IConnectionProvider provider){ return provider.Driver.FormatNameForParameter(tableAlias, name); } ! /// <summary> ! /// Returns a string version of the Parameter that is in the correct ! /// format for the IDbDataParameter.Name ! /// </summary> ! /// <param name="provider">The ConnectionProvider that contains the Dialect.</param> ! /// <param name="name">The name to format for the IDbDataParameter.</param> ! /// <returns>A valid IDbDataParameter Name for this Parameter.</returns> ! public string GetParameterName(IConnectionProvider provider, string name) ! { ! return provider.Driver.FormatNameForParameter(name); ! } ! ! [Obsolete("This does not handle quoted identifiers - going to use a number based name.")] ! public virtual IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider) ! { IDbDataParameter param = command.CreateParameter(); param.DbType = dbType; *************** *** 53,56 **** --- 81,93 ---- return param; } + + public virtual IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider, string name) + { + IDbDataParameter param = command.CreateParameter(); + param.DbType = dbType; + param.ParameterName = GetParameterName(provider, name); + + return param; + } /// <summary> Index: ParameterPrecisionScale.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/ParameterPrecisionScale.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ParameterPrecisionScale.cs 15 Mar 2004 14:47:07 -0000 1.2 --- ParameterPrecisionScale.cs 13 Apr 2004 13:01:59 -0000 1.3 *************** *** 26,30 **** } ! public override IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider) { IDbDataParameter param = base.GetIDbDataParameter (command, provider); param.Precision = precision; --- 26,32 ---- } ! [Obsolete("This does not handle quoted identifiers - going to use a number based name.")] ! public override IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider) ! { IDbDataParameter param = base.GetIDbDataParameter (command, provider); param.Precision = precision; *************** *** 34,37 **** --- 36,48 ---- } + public override IDbDataParameter GetIDbDataParameter(IDbCommand command, IConnectionProvider provider, string name) + { + IDbDataParameter param = base.GetIDbDataParameter (command, provider, name); + param.Precision = precision; + param.Scale = scale; + + return param; + } + public override bool Equals(object obj) { if(base.Equals(obj)) { |