public override string Render(Statement st) { if (values != null) { StringBuilder sb = new StringBuilder(); sb.Append(exp.Render(st)); if (!inOrNotIn) { sb.Append(" NOT "); } sb.Append("BETWEEN ( "); foreach (object val in values) { sb.AppendFormat("({0}){1} ", renderValue(val), " ,"); } sb.removeLastChar(); sb.Append(") "); return(sb.ToString()); } //====== if (table != null) { return(string.Format("(({0}) {1} ({2})", exp.Render(st), inOrNotIn ? "IN" : "NOT IN", table.renderInSelect())); } //====== if (select != null) { return(string.Format("(({0}) {1} ({2})", exp.Render(st), inOrNotIn ? "IN" : "NOT IN", select.renderInSelect())); } //not supposed to come here return(null); }
/// <summary> /// the same as render(), but ignoring 'order by' and 'limit offset' /// </summary> public override string renderInSelect() { StringBuilder sb = new StringBuilder(); sb.AppendFormat("SELECT {0}", distinct ? "DISTINCT" : ""); //select all if (tableFields == null && selectFields == null) { sb.Append(" * "); } //table fields if (tableFields != null) { foreach (DbTable t in tableFields) { sb.AppendFormat(" {0}.* ,", t.Name); } } //fields if (selectFields != null) { foreach (expr exp in selectFields) { sb.AppendFormat(" {0} ,", exp.Render(this)); } sb.removeLastChar(); } //from if (targetTable != null) { sb.AppendFormat(" FROM ({0}) ", targetTable.renderInSelect()); } //where if (cond != null) { sb.AppendFormat(" WHERE ({0}) ", cond.Render(this)); } //group by if (groupBys != null) { sb.Append(" GROUP BY "); foreach (expr ex in groupBys) { sb.AppendFormat(" {0} ,", ex.Render(this)); } sb.removeLastChar(); if (havingExp != null) { sb.AppendFormat(" HAVING ({0}) ", havingExp.Render(this)); } } // return(sb.ToString()); }
public override string Render() { StringBuilder sb = new StringBuilder(); sb.AppendFormat("DELETE FROM `{0}`", tbl.Name); if (cond != null) { sb.AppendFormat(" WHERE ({0})", cond.Render(this)); } return(sb.ToString()); }
public virtual string createCommand() { StringBuilder sb = new StringBuilder(); sb.AppendFormat("CREATE TRIGGER `{0}` {1} {2} ON `{3}`", this.name, before? "BEFORE" : "AFTER", events[(int)_event], tbl.Name); sb.Append(" FOR EACH ROW "); sb.AppendFormat(" WHEN ({0}) BEGIN", when.Render(null)); foreach (NonQueryStatement st in triggerSteps) { sb.AppendFormat("{0} ;", st.Render()); } sb.removeLastChar(); sb.Append(" END"); // return(sb.ToString()); }
//===== public override string Render() { StringBuilder sb = new StringBuilder(); sb.AppendFormat("UPDATE `{0}` SET ", this.tbl.Name); foreach (Assignment asn in assigns) { sb.AppendFormat("{0} ,", asn.render(this)); } sb.removeLastChar(); // if (cond != null) { sb.AppendFormat(" WHERE ({0}) ", cond.Render(this)); } return(sb.ToString()); }
public override string renderInSelect() { return(string.Format("({0}) {1} JOIN ({2}) ON ({3})", Tbl1.renderInSelect(), joinNames[(int)join], tbl2.renderInSelect(), on.Render(null))); }
public string render() { return(string.Format(" ({0}) {1} ", exp.Render(null), so == SortOrder.ASC? "ASC" : "DESC")); }
public override string Render(Statement st) { return(string.Format("({0}) AS {1}", exp.Render(st), _alias)); }
public override string Render(Statement st) { return(string.Format("({0}) {1}", exp.Render(st), _isNull? "ISNULL" : "NOTNULL")); }
public override string Render(Statement st) { return(string.Format("(({0}) {1} ({2}) AND ({3})) ", exp.Render(st), _between? "BETWEEN": "NOT BETWEEN", exp1.Render(st), exp2.Render(st))); }
public override string Render(Statement st) { return(string.Format("({0} {1}) ", op, exp.Render(st))); }
public string render(Statement st) { return(string.Format("`{0}` = ({1})", cln.Name, val.Render(st))); }