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); }
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); }
public DbField cct(DbSlc rOpnd) { if (optor.Length > 0) { return(new DbField(this).cct(rOpnd)); } this.Push(rOpnd); optor = utl.OPR("CCT"); return(this); }
public DbField apd(DbSlc rOpnd) { if (optor.Length > 0) { return(new DbField(this).apd(rOpnd)); } this.Push(rOpnd); optor = utl.OPR("APD"); return(this); }
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); }
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); }
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; }
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; }
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(); }
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); }
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); }
public DbSlc ORD(string order) { DbSlc ret = Clone(); ret.order = order; return(ret); }
public DbSlc TOP(long count) { DbSlc ret = Clone(); ret.count = count; return(ret); }
public DbIns INS(DbSlc sel) { return(new DbIns(Name, fields, sel)); }