Exemplo n.º 1
0
        public static IQueryBuilder BuildUpdateQuery(CustomForm form, CustomObject o)
        {
            var tableName = GetPrefixedTableName(ref form);

            if (!(o.Get("Id") is long) || ((o.Get("Id") as long?) ?? 0) < 1)
            {
                throw new Exception("Can't build an update query for an object that has no Id");
            }
            uint         seq  = 0;
            QueryBuilder retv = new QueryBuilder();

            retv.Append($"UPDATE {tableName} SET ");
            for (var i = 0; i < form.Fields.Count; i++)
            {
                retv.Append($"{form.Fields[i].Name}=@_uq{++seq}", o.Get(form.Fields[i].Name));
            }
            /* LMAO GET RID */
            if (o.Get("RID") != null)
            {
                retv.Append($"RID=@_uq{++seq}", o.Get("RID"));
            }
            else
            {
                retv.Append($"RID=@_uq{++seq}", IntEx.GenerateUniqueRID());
            }

            retv.Append($"WHERE Id=@_uq{++seq};", o.Get("Id"));

            return(retv);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
            }
        }
Exemplo n.º 4
0
        public static IQueryBuilder BuildInsertQuery(CustomForm form, CustomObject o)
        {
            var          tableName = GetPrefixedTableName(ref form);
            QueryBuilder retv      = new QueryBuilder();

            retv.Append($"INSERT INTO {tableName} (");
            for (var i = 0; i < form.Fields.Count; i++)
            {
                retv.Append($"{form.Fields[i].Name},");
            }
            retv.Append("RID");
            retv.Append(") VALUES (");
            int seq = 0;

            for (var i = 0; i < form.Fields.Count; i++)
            {
                retv.Append($"@_sq{seq++},", o.Get(form.Fields[i].Name));
            }
            retv.Append($"@_sq{seq++})", IntEx.GenerateUniqueRID());
            return(retv);
        }
Exemplo n.º 5
0
        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);
        }