Exemplo n.º 1
0
 public virtual Trm cct(DbSlc rOpnd)
 {
     if (optor.Length > 0)
     {
         return(new Trm(this).cct(rOpnd));
     }
     this.Push(rOpnd);                                       optor = utl.OPR("CCT"); return(this);
 }
Exemplo n.º 2
0
 public virtual Trm apd(DbSlc rOpnd)
 {
     if (optor.Length > 0)
     {
         return(new Trm(this).apd(rOpnd));
     }
     this.Push(rOpnd);                                       optor = utl.OPR("APD"); return(this);
 }
Exemplo n.º 3
0
 public DbField cct(DbSlc rOpnd)
 {
     if (optor.Length > 0)
     {
         return(new DbField(this).cct(rOpnd));
     }
     this.Push(rOpnd);                                        optor = utl.OPR("CCT"); return(this);
 }
Exemplo n.º 4
0
 public DbField apd(DbSlc rOpnd)
 {
     if (optor.Length > 0)
     {
         return(new DbField(this).apd(rOpnd));
     }
     this.Push(rOpnd);                                        optor = utl.OPR("APD"); return(this);
 }
Exemplo n.º 5
0
 private DbSlc(string type, DbSlc s1, DbSlc s2)
 {
     init();
     this.type = type.ToUpper().Trim();
     //string s = Db._sql(s2);
     parts.Push(s1);
     parts.Push(s2);
 }
Exemplo n.º 6
0
        public DbSlc MNS(params DbSlc[] other)
        {
            DbSlc ret = this; for (int i = 0; i < other.Length; i++)

            {
                ret = new DbSlc("MNS", ret, other[i]);
            }
            return(ret);
        }
Exemplo n.º 7
0
 private DbSlc(DbSlc cloneFrom)
 {
     init();
     this.count  = cloneFrom.count;
     this.fields = cloneFrom.fields.Clone(); //new Pile<string>(cloneFrom.fieldNames);
     this.from   = new KeyPile <string, string>(cloneFrom.from);
     this.join   = cloneFrom.join.Clone();   //new Pile<Cnd>(cloneFrom.join);
     this.where  = cloneFrom.where.Clone();  //new Pile<Cnd>(cloneFrom.where);
     this.order  = cloneFrom.order;
 }
Exemplo n.º 8
0
        internal DbIns(Reach smb)
        {
            init();
            //TBD
            Db    db        = new Db(new ctx().DbDrivers);
            DbIns ret       = null;
            Zone  bktFilter = new Zone(new Pile <string>(), new Pile <string>("", true, "(", ")", "||:0"));
            Zone  strFilter = new Zone(new Pile <string>(), new Pile <string>("", true, "\"", "\"", "||:1"));

            /*
             * string insstr = "Grid(\"prdrln\").sC(\"sbj, obj, vb, rul, steps, excerpt, trust\").INS(XXXX)";
             * insstr = insstr.Replace("XXXX", "Grid(\"prdrln p1, prdvrb pv1, prdrln p2, prdvrb pv2, kndrln sc, itmrln si, prdvrb pv, prdrul pr, itmrln oi, kndrln oc\", cd(\"p1.obj\").EQ(\"p2.sbj\")).sC(\"si.id, oi.id, pv.id, pr.id, 0, '', 0.5\").sR(XXXX).SLD");
             * insstr = insstr.Replace("XXXX", "cd(\"0\").EQ(Grid(\"prdrln prdrln\").sC(\"count(*)\").sR(cd(\"sbj\").EQ(\"si.id\"), cd(\"obj\").EQ(\"oi.id\"), cd(\"vb\").EQ(\"pr.vb\")).SLC ), XXXX");
             * insstr = bktFilter.on(insstr).text;
             * insstr = insstr.Replace("XXXX", "cd(\"0\").EQ(Grid(\"prdrln prdrln\").sC(\"count(*)\").sR(cd(\"sbj\").EQ(\"si.id\"), cd(\"obj\").EQ(\"oi.id\"), cd(\"vb\").EQ(\"pr.vb\")).SLC ), XXXX");
             */

            Reach gridDef = smb - bktFilter.on(smb);
            Reach ins     = gridDef.at(".INS(");

            if (ins.len == 0)
            {
                throw new Exception("DbIns Constructor: invalid symbolic Definition");
            }
            DbGrid res = db.Grid(smb.before(ins));

            smb = smb.after(ins).before(-1, ")");
            if (smb.startsWith("Grid("))
            {
                ret = res.INS(new DbSlc(smb));
            }
            else
            {
                Pile <string> val = new Pile <string>();
                while (smb.len > 0)
                {
                    if (smb.startsWith("ds("))
                    {
                        val.Push(db.ds(smb.after(1, "\"").before(1, "\""))); smb = smb.after(1, "),").Trim();
                    }
                    else
                    {
                        val.Push(smb.before(1, ",").Trim()); smb = smb.after(1, ",").Trim();
                    }
                }
                ret = res.INS(val.array());
            }
            into   = ret.into;
            fields = ret.fields.Clone(); //new Pile<string>(ret.fieldNames);
            values = ret.values;
            slc    = ret.slc;
        }
Exemplo n.º 9
0
        internal DbIns(string into, Pile <DbField> fields, DbSlc select)
        {
            init();
            this.slc = select;
            this.fields.Add(fields); //fields = fields.Trim(); while (fields.Length > 0) { this.fields.Add(utl.cutl(ref fields, ",").Trim()); fields = fields.Trim(); }
            this.into = into.Trim();
            string tShort = utl.cutl(ref into, ",").Trim().ToLower();
            string tName  = utl.cutl(ref tShort, " ").Trim();

            tShort = tShort.Trim(); if (tShort.Length == 0)
            {
                tShort = tName;
            }
            into = tName.Trim() + " " + tShort.Trim();
        }
Exemplo n.º 10
0
        public DbSlc Clone()
        {
            DbSlc ret = new DbSlc();

            ret.count    = count;
            ret.distinct = distinct;
            ret.fields   = fields.Clone();
            ret.from     = new KeyPile <string, string>();
            foreach (string k in from.Keys)
            {
                ret.from.Add(k, from[k]);
            }
            ret.join  = join.Clone();  //new Pile<Cnd>(join);
            ret.where = where.Clone(); //new Pile<Cnd>(where);
            ret.order = order;
            return(ret);
        }
Exemplo n.º 11
0
        public DbObj readVrb(long top, bool distinct, string order, params DbCnd[] cnd)
        {
            initializing = true;
            DbObj ret = Clone();
            DbSlc s   = vrbTbl.sR(cnd).SLC;

            if (top > -1)
            {
                s = s.TOP(top);
            }
            if (distinct)
            {
                s = s.DST;
            }
            if (order.Trim().Length > 0)
            {
                s = s.ORD(order);
            }
            ret.loadRecsSlc = s;
            ret.reload();
            initializing = false;
            isDirty      = false;
            return(ret);
        }
Exemplo n.º 12
0
 public DbSlc ORD(string order)
 {
     DbSlc ret = Clone(); ret.order = order; return(ret);
 }
Exemplo n.º 13
0
 public DbSlc TOP(long count)
 {
     DbSlc ret = Clone(); ret.count = count; return(ret);
 }
Exemplo n.º 14
0
 public DbIns   INS(DbSlc sel)
 {
     return(new DbIns(Name, fields, sel));
 }