public static async Task <bool> CheckStructure(this IRdbmsDataAccessor dataAccessor, IEnumerable <Type> types) { var checker = new StructureChecker(dataAccessor, types); await checker.CheckStructureAsync(); return(true); }
public static List <CustomObject> LoadRaw(IRdbmsDataAccessor rda, CustomForm cf, IDictionary <String, Object> conditions = null, int?p = 1, int?l = 200) { var tableName = GetPrefixedTableName(ref cf); DataTable results = rda.Query(BuildSelectQuery(cf, conditions, p, l)); var retv = new List <CustomObject>(); for (var i = 0; i < results.Rows.Count; i++) { CustomObject co = new CustomObject(); co.Set("Id", results.Rows[i]["Id"]); for (var a = 0; a < cf.Fields.Count; a++) { co.Set(cf.Fields[a].Name, results.Rows[i][cf.Fields[a].Name]); } co.Set("RID", results.Rows[i]["RID"]); if (co.Get("RID") == null) { co.Set("RID", IntEx.GenerateUniqueRID()); } retv.Add(co); } return(retv); }
public static IEnumerable <T> Fetch <T>(this IRdbmsDataAccessor self, BDadosTransaction transaction, Expression <Func <T, bool> > conditions = null, int?skip = null, int?limit = null, Expression <Func <T, object> > orderingMember = null, OrderingType ordering = OrderingType.Asc) where T : IDataObject, new() { return(self.LoadAll <T>( transaction, Core.Interfaces.LoadAll.Where <T>(conditions) .Skip(skip) .Limit(limit) .OrderBy(orderingMember, ordering) )); }
public static List <T> AggregateLoad <T>(this IRdbmsDataAccessor self, BDadosTransaction transaction, Expression <Func <T, bool> > conditions = null, int?skip = null, int?limit = null, Expression <Func <T, object> > orderingMember = null, OrderingType ordering = OrderingType.Asc, MemberInfo GroupingMember = null, bool Linear = false) where T : IDataObject, new() { return(self.AggregateLoad <T>( transaction, Core.Interfaces.LoadAll.Where <T>(conditions) .Skip(skip) .Limit(limit) .OrderBy(orderingMember, ordering) .GroupBy(GroupingMember) .LinearIf(Linear) )); }
public static void Save(IRdbmsDataAccessor rda, CustomForm cf, CustomObject value) { var tableName = GetPrefixedTableName(ref cf); Object getId = value.Get("Id"); if (getId is long && (long)getId > 0) { rda.Execute(BuildUpdateQuery(cf, value)); } else { rda.Execute(BuildInsertQuery(cf, value)); } }
public static void CheckStructure(IRdbmsDataAccessor da, CustomForm form) { var tableName = GetPrefixedTableName(ref form); // DataTable schemaInfo = da.Query( new Qb($"SELECT * FROM information_schema.tables WHERE table_schema='{da.SchemaName}' AND table_name='{tableName}'")); // Se a tabela não existir, criar if (schemaInfo.Rows.Count < 1) { var creationQuery = BuildCreationQuery(form); da.Execute(creationQuery); } else { DataTable columnsInfo = da.Query( new Qb($"SELECT * FROM information_schema.columns WHERE table_schema='{da.SchemaName}' AND table_name='{tableName}'")); for (var i = 0; i < form.Fields.Count; i++) { bool exists = false; int cIndex = -1; for (var c = 0; c < columnsInfo.Rows.Count; c++) // C++!!! { if (columnsInfo.Rows[c]["COLUMN_NAME"] as String == form.Fields[i].Name) { exists = true; cIndex = c; break; } } if (!exists) { da.Execute(new Qb($"ALTER TABLE {tableName} ADD COLUMN {SqlType(form.Fields[i])} DEFAULT NULL;")); } else { ulong? sz = (ulong?)columnsInfo.Rows[cIndex]["CHARACTER_MAXIMUM_LENGTH"]; String dbtype = (String)columnsInfo.Rows[cIndex]["DATA_TYPE"]; if (dbtype.ToLower() == "varchar" && sz != (ulong)form.Fields[i].Size) { da.Execute(new Qb($"ALTER TABLE {tableName} CHANGE COLUMN {form.Fields[i].Name} {form.Fields[i].Name} {SqlType(form.Fields[i])} DEFAULT NULL")); } } } } }
public static Object LoadByRid(IRdbmsDataAccessor rda, CustomForm cf, String rid) { DataTable results = rda.Query(BuildSelectByRidQuery(cf, rid)); var retv = new List <CustomObject>(); for (var i = 0; i < results.Rows.Count; i++) { CustomObject co = new CustomObject(); co.Set("Id", results.Rows[i]["Id"]); for (var a = 0; a < cf.Fields.Count; a++) { co.Set(cf.Fields[a].Name, results.Rows[i][cf.Fields[a].Name]); } co.Set("RID", results.Rows[i]["RID"]); if (co.Get("RID") == null) { co.Set("RID", IntEx.GenerateUniqueRID()); } return(co.Refine()); } return(null); }
public static List <Object> Load(IRdbmsDataAccessor rda, CustomForm cf, IDictionary <String, Object> conditions = null, int?p = 1, int?l = 200) { return(LoadRaw(rda, cf, conditions, p, l).Select((co) => co.Refine()).ToList()); }
public static async Task <bool> CheckStructure(this IRdbmsDataAccessor dataAccessor, Assembly ass) { return(await CheckStructure(dataAccessor, ReflectionTool.GetLoadableTypesFrom(ass))); }
public static int Execute(this IRdbmsDataAccessor self, BDadosTransaction transaction, string query, params object[] args) { return(self.Execute(transaction, (IQueryBuilder)Qb.Fmt(query, args))); }
public static DataTable Query(this IRdbmsDataAccessor self, BDadosTransaction transaction, string query, params object[] args) { return(self.Query(transaction, Qb.Fmt(query, args))); }
public static DataTable Query(this IRdbmsDataAccessor self, string query, params object[] args) { return(self.Query(Qb.Fmt(query, args))); }
public static List <T> Query <T>(this IRdbmsDataAccessor self, BDadosTransaction transaction, string query, params object[] args) where T : IDataObject, new() { return(self.Query <T>(transaction, (IQueryBuilder)Qb.Fmt(query, args))); }
public static List <T> LoadAll <T>(this IRdbmsDataAccessor self, BDadosTransaction transaction, string query, params object[] args) where T : IDataObject, new() { return(self.LoadAll(transaction, (IQueryBuilder)Qb.Fmt(query, args), (int?)null, (int?)null, (Expression <Func <T, object> >)null, OrderingType.Asc, (object)null)); }