public override void ExecuteRows <ActiveRecord>(DataTable <ActiveRecord> table, SelectQuery <ActiveRecord> query, RowsExecutor <ActiveRecord> executor) { var queryCmd = createSelect(table, query.Condition, true); appendOrderBy(queryCmd, query.Ordering); appendLimit(queryCmd, query); var results = new List <ActiveRecord>(); using (var reader = queryCmd.ExecuteReader()) { while (reader.Read()) { var columns = new ColumnsReader(reader); var result = table.CreateRecord(columns); results.Add(result); } reader.Close(); } var totalRowsScalar = executeScalar("SELECT FOUND_ROWS()"); var totalRows = Convert.ToInt32(totalRowsScalar); var rowsResult = new RowsResult <ActiveRecord>(results, totalRows); executor(rowsResult); }
public override void ExecuteRow <ActiveRecord>(DataTable <ActiveRecord> table, SelectQuery <ActiveRecord> query, RowExecutor <ActiveRecord> executor) { var queryCmd = createSelect <ActiveRecord>(table, query.Condition); queryCmd.Append(" LIMIT 1"); ActiveRecord result = default(ActiveRecord); using (var reader = queryCmd.ExecuteReader()) { if (reader.Read()) { var columns = new ColumnsReader(reader); result = table.CreateRecord(columns); } reader.Close(); } executor(result); }