Forráskód Böngészése

2008-08-18 Marek Habersack <[email protected]>

	* Numeric.cs: Max/Min operations do not convert string
	IConvertibles to double - they perform a simple string compare
	instead.

svn path=/trunk/mcs/; revision=110722
Marek Habersack 17 éve
szülő
commit
dc06502c34

+ 6 - 0
mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog

@@ -1,3 +1,9 @@
+2008-08-18  Marek Habersack  <[email protected]>
+
+	* Numeric.cs: Max/Min operations do not convert string
+	IConvertibles to double - they perform a simple string compare
+	instead.
+
 2008-01-23 Konstantin Triger <[email protected]>
 
 	* Like.cs: when rh expresssion is null or DBNull always return false.

+ 14 - 6
mcs/class/System.Data/Mono.Data.SqlExpressions/Numeric.cs

@@ -194,9 +194,13 @@ namespace Mono.Data.SqlExpressions {
 			case TypeCode.Decimal:
 				return System.Math.Min ((decimal)o1, (decimal)o2);
 			case TypeCode.String:
-				double val1 = Convert.ToDouble (o1);
-				double val2 = Convert.ToDouble (o2);
-				return (System.Math.Min(val1, val2)).ToString();
+				int result = String.Compare ((string)o1, (string)o2);
+				if (result <= 0)
+					return o1;
+				else
+					return o2;
+				break;
+				
 			default:
 				return DBNull.Value;
 			}
@@ -214,9 +218,13 @@ namespace Mono.Data.SqlExpressions {
 			case TypeCode.Decimal:
 				return System.Math.Max ((decimal)o1, (decimal)o2);
 			case TypeCode.String:
-				double val1 = Convert.ToDouble (o1);
-				double val2 = Convert.ToDouble (o2);
-				return (System.Math.Max(val1, val2)).ToString();
+				int result = String.Compare ((string)o1, (string)o2);
+				if (result >= 0)
+					return o1;
+				else
+					return o2;
+				break;
+				
 			default:
 				return DBNull.Value;
 			}