Bug #11490 | certain incorrect queries trigger connection must be valid and open message | ||
---|---|---|---|
Submitted: | 21 Jun 2005 20:12 | Modified: | 2 Nov 2005 15:05 |
Reporter: | Mathieu van Loon | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / NET | Severity: | S3 (Non-critical) |
Version: | 1.0.4 | OS: | Windows (XP professional) |
Assigned to: | Reggie Burnett | CPU Architecture: | Any |
[21 Jun 2005 20:12]
Mathieu van Loon
[22 Jun 2005 11:01]
Vasily Kishkin
Could you please write here a definition of table "hosts" ?
[22 Jun 2005 11:08]
Mathieu van Loon
oops. I should have written MySqlHelper.ExecuteReader(ConnectionString, "SELECT * FROM host INTENTIONAL_SYNTAX_ERROR"); and MySqlHelper.ExecuteReader(ConnectionString, "SELECT * FROM host WHERE TIME('2005/6/21')"); This way you can run the query against the default mysql database.
[22 Jun 2005 11:30]
Vasily Kishkin
I was able to repeat the bug. Thanks. Tested on Win 2000 Sp4, Microsoft Visual C# .NET , Connector .NET 1.0.4 Test case is attached.
[22 Jun 2005 19:03]
Reggie Burnett
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bugfix, yourself. More information about accessing the source trees is available at http://www.mysql.com/doc/en/Installing_source_tree.html Additional info: Fixed in 1.0.5 and all 2.0.0 releases
[23 Jun 2005 17:24]
Mike Hillyer
Documented in the 1.0.5 and 2.0.0 changelogs: <listitem><para>Certain malformed queries will trigger a "Connection must be valid and open" error message. (Bug #11490)</para></listitem>
[2 Nov 2005 14:21]
Matthew Lord
Looks like this may have creeped back into 1.0.6.
[29 Dec 2005 17:49]
chris clement
I am getting this msg on code that once worked. It is a followup UPDATE from a modified grid. It worked in Access 2000 but will not work w MySQL 5.0.16-nt. This is the code as it is at present. There are many commented lines that serve as a guide or refer to the Access tie-in. The message appears when I try to see the UPDATE code, or perform it marked with ****. I have XP pro and VBNET 2003. Private Sub update2() 'from grid 'get a timestamp, formatted, w year 1st temp3 = Date.Now.Year & "/" & Date.Now.Month & "/" & Date.Now.Day & " " & Date.Now.Hour & ":" & Date.Now.Minute & ":" & Date.Now.Second If m_DataSet.HasChanges() Then 'Dim db3 As MySql.Data.MySqlClient.MySqlConnection = db5 Dim data_adapter2 As New MySqlDataAdapter ' Dim command_builder As OleDb.OleDbCommandBuilder Dim command_builder = New MySql.Data.MySqlClient.MySqlCommandBuilder(data_adapter2) 'MySql.Data.MySqlClient ' Create the DataAdapter. data_adapter2 = New MySqlDataAdapter(sqlString, "server=localhost;user id=root;password=r00t;database=SIUDB") 'db3) ' Map Table to Contacts. data_adapter2.TableMappings.Add("Table", "CREDITS") ' Make the CommandBuilder generate the ' insert, update, and delete commands. command_builder = New MySql.Data.MySqlClient.MySqlCommandBuilder(data_adapter2) 'dim command_builder = New _ ' OleDb.OleDbCommandBuilder(data_adapter) ' Uncomment this code to see the INSERT, ' UPDATE, and DELETE commands. 'Debug.WriteLine("*** INSERT ***") 'Debug.WriteLine(command_builder.GetInsertCommand.CommandText) 'Debug.WriteLine("*** UPDATE ***") 'Debug.WriteLine(command_builder.GetUpdateCommand.CommandText) 'Debug.WriteLine("*** DELETE ***") 'Debug.WriteLine(command_builder.GetDeleteCommand.CommandText) 'ListBox1.Items.Add(command_builder.GetInsertCommand.CommandText) ListBox1.Items.Add(command_builder.GetUpdateCommand.CommandText) '**** 'ListBox1.Items.Add(command_builder.GetDeleteCommand.CommandText) 'An unhandled exception of type 'System.InvalidOperationException' occurred in microsoft.visualbasic.dll 'Additional information: Connection must be valid and open ' Save the changes. data_adapter2.Update(m_DataSet) '**** 'www.vb-helper.com/howto_net_datagrid.html End If ' sqlString = "SELECT * FROM CREDITS 'where StudentNo=" & StudentNoSave & " ORDER BY YEARC,SEMESTER,COURSEID" ' If m_DataSet.HasChanges() Then ' Dim data_adapter As OleDb.OleDbDataAdapter ' Dim command_builder As OleDb.OleDbCommandBuilder ' ' Create the DataAdapter. ' data_adapter = New OleDb.OleDbDataAdapter(sqlString, "Provider=Microsoft.Jet.OLEDB.4.0;Jet 'OLEDB:Database Password=sirhc;Data source=SIUdb.mdb") ' ' Map Table to Contacts. ' data_adapter.TableMappings.Add("Table", "CREDITS") ' ' Make the CommandBuilder generate the ' ' insert, update, and delete commands. ' command_builder = New _ ' OleDb.OleDbCommandBuilder(data_adapter) ' ' Uncomment this code to see the INSERT, ' ' UPDATE, and DELETE commands. ' Debug.WriteLine("*** INSERT ***") ' Debug.WriteLine(command_builder.GetInsertCommand.CommandText) ' Debug.WriteLine("*** UPDATE ***") ' Debug.WriteLine(command_builder.GetUpdateCommand.CommandText) ' Debug.WriteLine("*** DELETE ***") ' Debug.WriteLine(command_builder.GetDeleteCommand.CommandText) ' ' Save the changes. ' data_adapter.Update(m_DataSet) ' 'www.vb-helper.com/howto_net_datagrid.html ' End If End Sub
[29 Dec 2005 17:56]
chris clement
Additionally in the above code. I was never able to pass the connection string in as a variable, getting some absurd "unable to cast a string" msg. I have to use the literal to fill the flexgrid and here to update it. Rest of program (with textboxes) works fine with a symbolic variable.
[5 Apr 2006 18:20]
Jacob Anderson
I have a similar problem where I specify a date as "03-01-2006" (in western notation as MM-DD-YYYY), and I get warning 1292 during the query. That also triggers this error: System.InvalidOperationException: Connection must be valid and open at MySql.Data.MySqlClient.MySqlCommand.CheckState() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() at MySql.Data.MySqlClient.Driver.ShowWarnings(Int32 count) at MySql.Data.MySqlClient.NativeDriver.ReadEOF(Boolean readPacket) at MySql.Data.MySqlClient.NativeDriver.OpenDataRow(Int32 fieldCount, Boolean isBinary) at MySql.Data.MySqlClient.CommandResult.Load() at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior MYSQL: mysql Ver 14.7 Distrib 4.1.12a, for Win32 (ia32) Connector: MySql.Data.dll version 1.0.4.20163