public static Task ClosePrepareAsync(this MySqlCommand cmd) { var tcs = new TaskCompletionSource <int>(); cmd.ClosePrepare(() => tcs.SetResult(0)); return(tcs.Task); }
public static void T_PrepareStatement_UnsignedFlags() { //test the unsigned flags of mysql prepare stmt protocol var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); conn.Open(); { string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); } { string sql = "create table test001(col_id int(10) unsigned not null auto_increment, col1 tinyint," + "col2 tinyint unsigned, primary key(col_id) )"; var cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); } { string sql = "insert into test001(col1,col2) values(?col1,?col2)"; var cmd = new MySqlCommand(sql, conn); cmd.Prepare(); cmd.SetOnErrorHandler(cmd2 => { //expect out of range }); for (int i = 0; i < 2; ++i) { var pars = cmd.Parameters; pars.AddWithValue("?col1", 255); pars.AddWithValue("?col2", 255); cmd.ExecuteNonQuery(); if (cmd.HasError) { break; } } cmd.ClosePrepare(); } { string sql = "select col1,col2 from test001"; var cmd = new MySqlCommand(sql, conn); var reader = cmd.ExecuteReader(); while (reader.Read()) { var v1 = reader.GetInt8(0); var v2 = reader.GetUInt8(1); } reader.Close(); } conn.Close(); Report.WriteLine("ok"); }
public static void T_PrepareStatement_withContext() { var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); conn.Open(); { string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); } { string sql = "create table test001(col_id int(10) unsigned not null auto_increment, col1 int(10)," + "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )"; var cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); } { string sql = "insert into test001(col1,col2,col3,col4) values(?col1,?col2,?col3,?col4)"; var cmd = new MySqlCommand(sql, conn); cmd.Prepare(); for (int i = 0; i < 100; ++i) { var pars = cmd.Parameters; pars.AddWithValue("?col1", 10); pars.AddWithValue("?col2", "AA"); pars.AddWithValue("?col3", "0123456789"); pars.AddWithValue("?col4", "0001-01-01"); cmd.ExecuteNonQuery(); } cmd.ClosePrepare(); } { string sql = "select col1,col2 from test001 where col1>?col1_v"; var cmd = new MySqlCommand(sql, conn); cmd.Prepare(); } { string sql = "select col1,col2 from test001 where col1>?col1_v"; var cmd = new MySqlCommand(sql, conn); cmd.Prepare(); //cmd.Parameters.AddWithValue("?col1_v", 0); //var reader = cmd.ExecuteReader(); //while (reader.Read()) //{ //} //reader.Close(); } conn.Close(); Report.WriteLine("ok"); }