[Mono-bugs] [Bug 613261] New: multiple SqlCommand.ExecuteScalar() on queries with more than one result fails to finish reader
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Thu Jun 10 11:28:29 EDT 2010
http://bugzilla.novell.com/show_bug.cgi?id=613261
http://bugzilla.novell.com/show_bug.cgi?id=613261#c0
Summary: multiple SqlCommand.ExecuteScalar() on queries with
more than one result fails to finish reader
Classification: Mono
Product: Mono: Class Libraries
Version: SVN
Platform: x86-64
OS/Version: Linux
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Sys.Data.SqlClient
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: tjfontaine at atxconsulting.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us)
AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16
When reusing a SqlCommand and calling ExecuteScalar multiple times on a query
that returns more than one result will only return results every other
ExecuteScalar
Reproducible: Always
Steps to Reproduce:
1. open SqlClient connection
2. create command
3. set command text to something that returns more than one row
4. executescalar multiple times
Actual Results:
mono CondensedTestCase/bin/Debug/CondensedTestCase.exe
--------------- 1 MemberId: 99
--------------- 2 MemberId:
--------------- 3 MemberId: 99
>>>>>>>>>>>>>>>>>>>>
--------------- 1 MemberId:
--------------- 2 MemberId: 99
--------------- 3 MemberId
>>>>>>>>>>>>>>>>>>>>
Expected Results:
mono CondensedTestCase/bin/Debug/CondensedTestCase.exe
--------------- 1 MemberId: 99
--------------- 2 MemberId: 99
--------------- 3 MemberId: 99
>>>>>>>>>>>>>>>>>>>>
--------------- 1 MemberId: 99
--------------- 2 MemberId: 99
--------------- 3 MemberId: 99
>>>>>>>>>>>>>>>>>>>>
Here is a test case to produce the unexpected results
public static void Error2()
{
using (SqlConnection con = new SqlConnection(connStr))
{
con.Open();
var cmd = con.CreateCommand();
cmd.CommandText = "SELECT id FROM Members";
Console.WriteLine(" --------------- 1 MemberId: " +
cmd.ExecuteScalar());
Console.WriteLine(" --------------- 2 MemberId: " +
cmd.ExecuteScalar());
Console.WriteLine(" --------------- 3 MemberId: " +
cmd.ExecuteScalar());
Console.WriteLine(" >>>>>>>>>>>>>>>>>>>>");
con.Close();
}
}
-----------
proposed patch that fixes output
-----------
Index: System.Data.SqlClient/SqlCommand.cs
===================================================================
--- System.Data.SqlClient/SqlCommand.cs (revision 158592)
+++ System.Data.SqlClient/SqlCommand.cs (working copy)
@@ -618,9 +618,10 @@
try {
if (Connection.Tds.NextResult () && Connection.Tds.NextRow
())
result = Connection.Tds.ColumnValues[0];
+
+ Connection.Tds.SkipToEnd ();
if (commandType == CommandType.StoredProcedure) {
- Connection.Tds.SkipToEnd ();
GetOutputParameters ();
}
} catch (TdsTimeoutException ex) {
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list