public static IDictionary <string, long> CountRecords(this IDAC dac, IEnumerable <string> tableNames = null) { var result = new Dictionary <string, long>(); if (tableNames == null) { tableNames = dac.GetSchemaCached().Tables.Select(table => table.Name); } if (!tableNames.Any()) { return(result); } var sqlBuilder = dac.CreateSQLBuilder(); foreach (var table in tableNames.WithDescriptions()) { if (table.Index > 0) { sqlBuilder.NewLine().Emit("UNION ALL").NewLine(); } sqlBuilder.Emit("SELECT '{0}', COUNT(1) FROM {1}", table.Item, SQLBuilderCommand.TableName(table.Item)); } dac .ExecuteQuery(((Object)sqlBuilder).ToString()) .Rows .Cast <DataRow>() .ForEach(row => result.Add(row.Get <string>(0), row.Get <long>(1))); return(result); }
// Improve this public static DataTable Select(this IDAC dac, string tableName, IEnumerable <string> columns = null, bool distinct = false, int?limit = null, int?offset = null, IEnumerable <ColumnValue> columnMatches = null, string whereClause = null, string orderByClause = null) { var sqlBuilder = dac.CreateSQLBuilder(); sqlBuilder.Select(tableName, columns: columns != null ? columns.Cast <object>() : null, distinct: distinct, limit: limit, offset: offset, columnMatches: columnMatches, whereClause: whereClause, orderByClause: orderByClause, endStatement: true); var table = dac.ExecuteQuery(sqlBuilder.ToString()); table.TableName = tableName; return(table); }
public static async Task <DataTable> ExecuteQueryAsync(this IDAC dac, string query) { return(await Task.Run(() => dac.ExecuteQuery(query))); }
public static async Task <DataTable> ExecuteQueryAsync(this IDAC dac, string query, params object[] args) { return(await Task.Run(() => dac.ExecuteQuery(query, args))); }
public virtual DataTable ExecuteQuery(string query) { return(DecoratedDAC.ExecuteQuery(query)); }