List:Commits« Previous MessageNext Message »
From:rburnett Date:January 17 2007 11:25pm
Subject:Connector/NET commit: r560 - in branches/1.0: . TestSuite mysqlclient/Types
View as plain text  
Modified:
   branches/1.0/CHANGES
   branches/1.0/TestSuite/LanguageTests.cs
   branches/1.0/mysqlclient/Types/MySqlValue.cs
Log:
Bug #25651 SELECT does not work properly when WHERE contains UTF-8 characters 

Fixed a problem where VarString parameters were not being treated as strings.

Modified: branches/1.0/CHANGES
===================================================================
--- branches/1.0/CHANGES	2007-01-17 22:16:25 UTC (rev 559)
+++ branches/1.0/CHANGES	2007-01-17 22:25:39 UTC (rev 560)
@@ -21,6 +21,7 @@
     Bug #24802 Error Handling 
     Bug #25614 After connection is closed, and opened again UTF-8 characters are not read
well 
     Bug #25625 Crashes when calling with CommandType set to StoredProcedure 
+    Bug #25651 SELECT does not work properly when WHERE contains UTF-8 characters 
 
     Other changes
     -------------

Modified: branches/1.0/TestSuite/LanguageTests.cs
===================================================================
--- branches/1.0/TestSuite/LanguageTests.cs	2007-01-17 22:16:25 UTC (rev 559)
+++ branches/1.0/TestSuite/LanguageTests.cs	2007-01-17 22:25:39 UTC (rev 560)
@@ -356,5 +356,40 @@
 			}
 			execSQL("DROP TABLE test_tbl");
 		}
+
+        /// <summary>
+        /// Bug #25651 SELECT does not work properly when WHERE contains UTF-8 characters

+        /// </summary>
+        [Test]
+        public void UTF8Parameters()
+        {
+            execSQL("DROP TABLE IF EXISTS test");
+            execSQL("CREATE TABLE test (id int(11) NOT NULL, " +
+                "value varchar(100) NOT NULL, PRIMARY KEY (id)) " +
+                "ENGINE=MyISAM DEFAULT CHARSET=utf8");
+
+            string conString = GetConnectionString(true) + ";charset=utf8";
+            try
+            {
+                using (MySqlConnection con = new MySqlConnection(conString))
+                {
+                    con.Open();
+
+                    MySqlCommand cmd = new MySqlCommand("INSERT INTO test VALUES (1,
'šđč枊ĐČĆŽ')", con);
+                    cmd.ExecuteNonQuery();
+
+                    cmd.CommandText = "SELECT id FROM test WHERE value =  ?parameter";
+                    cmd.Parameters.Add("?parameter", MySqlDbType.VarString);
+                    cmd.Parameters[0].Value = "šđč枊ĐČĆŽ";
+                    cmd.CommandTimeout = 0;
+                    object o = cmd.ExecuteScalar();
+                    Assert.AreEqual(1, o);
+                }
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+        }
 	}
 }

Modified: branches/1.0/mysqlclient/Types/MySqlValue.cs
===================================================================
--- branches/1.0/mysqlclient/Types/MySqlValue.cs	2007-01-17 22:16:25 UTC (rev 559)
+++ branches/1.0/mysqlclient/Types/MySqlValue.cs	2007-01-17 22:25:39 UTC (rev 560)
@@ -160,6 +160,7 @@
 				case MySqlDbType.Set:
 				case MySqlDbType.Enum:
 				case MySqlDbType.Char:
+                case MySqlDbType.VarString:
 				case MySqlDbType.VarChar: 
 					return new MySqlString(null, type);
 

Thread
Connector/NET commit: r560 - in branches/1.0: . TestSuite mysqlclient/Typesrburnett17 Jan