Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }