| Bug #46054 | Setting local variables causes error | ||
|---|---|---|---|
| Submitted: | 8 Jul 2009 19:35 | Modified: | 10 Jul 2009 6:17 |
| Reporter: | Todd Brewer | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | Connector / NET | Severity: | S2 (Serious) |
| Version: | 6.0.4.0 | OS: | Windows (Vista 64) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | .NET. Connector, Local variables | ||
[8 Jul 2009 19:35]
Todd Brewer
[9 Jul 2009 8:28]
Tonci Grgin
Hi Todd and thanks for your report.
Unfortunately, you provided neither enough info nor test case so I had to guess around...
"Worked in 5.X" is in no way enough as there was a change in processing this problem in, I think, 5.2.3 or so.
Now, using 5.2 latest sources and sources in trunk (6.1.0 but for your case it's 6.0.5 code) on Win2k8x64 against remote MySQL server 5.1.31 I am unable to repeat the problem:
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = "DataSource=***;Database=test;UserID=***;Password=***;PORT=***;Allow Zero Datetime=True;allow user variables = true";
conn.Open();
MySqlCommand cmdCreateTable = new MySqlCommand("SET @StartDate = NOW()", conn);
cmdCreateTable.CommandTimeout = 0;
cmdCreateTable.ExecuteNonQuery();
cmdCreateTable.CommandText = "SELECT @StartDate";
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter(cmdCreateTable);
da.Fill(dt);
DisplayData(dt); //irrelevant
dt.Clear();
dt.Dispose();
da.Dispose();
cmdCreateTable.Dispose();
conn.Close();
Console.WriteLine("Done.");
Output:
@StartDate = System.Byte[]
============================
Done.
[9 Jul 2009 16:17]
Todd Brewer
Example showing this bug
Attachment: bug-data-46054-46055.zip (application/zip, text), 36.78 KiB.
[9 Jul 2009 16:22]
Todd Brewer
I have attached a zipped Visual Studio 2008 project showing this bug. For this bug, click on the "Local Variables" button. Again, this works fine when I run this same application using the 5.1.5 connector. As soon as I installed the 6.0.4 connector I had several reports break and I narrowed it down to this issue, and the issue outlined in Bug #46055.
[9 Jul 2009 19:59]
Todd Brewer
By the way, I can replicate this using the following servers: 5.0.36 enterprise 5.0.67 community 5.1.36 community
[10 Jul 2009 6:00]
Tonci Grgin
Todd, you did not check on my test case. From what I see in attached code, you're still missing "allow user variables = true" connection option. Please add it and retest.
[10 Jul 2009 6:15]
Tonci Grgin
Further more, you will get BINARY data out of first query (which is expected and documented) so you should rewrite it as follows for your code to work:
string sQuery =
@"SET @StartDate = NOW();
SELECT CAST(@StartDate AS CHAR) AS Now_Is;";
RunQuery(sQuery);
[10 Jul 2009 6:17]
Tonci Grgin
Todd, providing you made above mentioned changes, problem is not repeatable with your test case. So, closing again. Let me check the other report.
