static Task <CAsyncDBHandler.SQLExeInfo>[] TestBatch(CSqlite sqlite, List <KeyValue> ra) { var v = new Task <CAsyncDBHandler.SQLExeInfo> [2]; CDBVariantArray vParam = new CDBVariantArray(); vParam.Add(1); //ID vParam.Add(2); //EMPLOYEEID //there is no manual transaction if isolation is tiUnspecified v[0] = sqlite.executeBatch(tagTransactionIsolation.tiUnspecified, "Select datetime('now');select * from COMPANY where ID=?;select * from EMPLOYEE where EMPLOYEEID=?", vParam, (handler, rowData) => { //rowset data come here int last = ra.Count - 1; KeyValue item = ra[last]; item.Value.AddRange(rowData); }, (handler) => { //rowset header meta info comes here KeyValue item = new KeyValue(handler.ColumnInfo, new CDBVariantArray()); ra.Add(item); }); vParam.Clear(); vParam.Add(1); //ID vParam.Add(2); //EMPLOYEEID vParam.Add(2); //ID vParam.Add(3); //EMPLOYEEID //Same as sqlite.BeginTrans(); //Select datetime('now'); //select * from COMPANY where ID=1; //select * from COMPANY where ID=2; //Select datetime('now'); //select * from EMPLOYEE where EMPLOYEEID=2; //select * from EMPLOYEE where EMPLOYEEID=3 //ok = sqlite.EndTrans(tagRollbackPlan.rpDefault); v[1] = sqlite.executeBatch(tagTransactionIsolation.tiReadCommited, "Select datetime('now');select * from COMPANY where ID=?;Select datetime('now');select * from EMPLOYEE where EMPLOYEEID=?", vParam, (handler, rowData) => { //rowset data come here int last = ra.Count - 1; KeyValue item = ra[last]; item.Value.AddRange(rowData); }, (handler) => { //rowset header meta info comes here KeyValue item = new KeyValue(handler.ColumnInfo, new CDBVariantArray()); ra.Add(item); }); return(v); }