static void SelectDataBack(MySqlConnection conn, TaskChain tc) { string sql = "select * from test001"; var cmd = new MySqlCommand(sql, conn); tc.AddTask(() => { #if DEBUG conn.dbugPleaseBreak = true; #endif }); //this is very basic mapper*** var mapper = Mapper.Map((SimpleInfo t, int col_id, string col2, string col3) => { t.col1 = col_id; t.col2 = col2; }); cmd.AsyncExecuteSubTableReader(tc, reader => { mapper.DataReader = reader; while (reader.Read()) { var simpleInfo = mapper.Map(new SimpleInfo()); } ////simple map query result to member of the target object ////we create simpleinfo and use mapper to map field tc.AutoCallNext = reader.CurrentSubTable.IsLastTable; }); }
static void SelectDataBack(MySqlConnection conn, TaskChain tc) { string sql = "select * from test001"; var cmd = new MySqlCommand(sql, conn); tc.AddTask(() => { #if DEBUG conn.dbugPleaseBreak = true; #endif }); //this is very basic mapper*** var mapper = Mapper.Map((SimpleInfo t, int col_id, string col2, string col3) => { t.col1 = col_id; t.col2 = col2; }); cmd.AsyncExecuteSubTableReader(tc, reader => { mapper.DataReader = reader; while (SharpConnect.MySql.SyncPatt.MySqlSyncPattExtension.Read(reader)) { var simpleInfo = mapper.Map(new SimpleInfo()); } tc.AutoCallNext = reader.CurrentSubTable.IsLastTable; }); }
public static void T_Select_sysdate3() { //prefer this var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); var tc = new TaskChain(); conn.AsyncOpen(tc); var cmd = new MySqlCommand("select sysdate()", conn); cmd.AsyncExecuteSubTableReader(tc, reader => { if (reader.Read()) { var dtm = reader.GetDateTime(0); } }); conn.AsyncClose(tc); tc.WhenFinish(() => { }); tc.Start(); }
public static void T_InsertAndSelect_Async3() { System.Diagnostics.Stopwatch stopW = new System.Diagnostics.Stopwatch(); stopW.Start(); var connStr = GetMySqlConnString(); var conn = new MySqlConnection(connStr); conn.UseConnectionPool = true; var tc = new TaskChain(); //add task chain too connection object conn.AsyncOpen(tc); //----------------------------------------- { //drop table if exist string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- { //drop table if exist string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- { 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.AsyncExecuteNonQuery(tc); } //----------------------------------------- for (int i = 0; i < 100; ++i) { string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); } //----------------------------------------- { string sql = "select * from test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteSubTableReader(tc, subtable => { //when new task is add after tc is started //then this new task is immmediately insert //after current task }); } { string sql = "select sysdate()"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteScalar <DateTime>(tc, dtm => { }); } //----------------------------------------- conn.AsyncClose(tc); tc.WhenFinish(() => { stopW.Stop(); Report.WriteLine("avg:" + stopW.ElapsedTicks); }); tc.BeforeEachTaskBegin(() => { Console.WriteLine(tc.CurrentTaskIndex + "/" + tc.TaskCount); }); //---------------------------------------- tc.Start(); }