protected override void build(Item item, int limit) { string val = item.getStreamName(); string str2 = item.getIdField(); StringTheory condition = new StringTheory(); base.BuildCondition(condition, item); if (limit > -1) { StringTheory theory2 = new StringTheory("SELECT TOP %limit% %id_field% FROM %table%"); theory2.Replace("%limit%", limit); theory2.Replace("%id_field%", item.getIdField()); theory2.Replace("%table%", val); if ((condition != null) && (condition.Length > 0)) { theory2.Append(" WHERE "); theory2.Append(condition); } base.Append("DELETE FROM "); base.Append(val); base.Append(" WHERE "); base.Append(string.Concat(new object[] { item.getIdField(), " IN (", theory2, ")" })); } else { base.Append("DELETE FROM "); base.Append(val); if ((condition != null) && (condition.Length > 0)) { base.Append(" WHERE "); base.Append(condition); } } }
protected override void LimitRecordsReturned(StringTheory query, int limit) { if (limit > -1) { query.Append(" LIMIT "); query.Append(limit.ToString()); query.Append(" "); } }
protected override void LimitRecordsReturned(StringTheory query, int limit) { if (limit > -1) { query.Prepend("SELECT * FROM ("); query.Append(") WHERE rownum < "); query.Append((limit + 1).ToString()); query.Append(" "); } }
public XmlDocument Describe() { XmlDocument document = new XmlDocument(); StringTheory theory = new StringTheory("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); ArrayList list = new ArrayList(); theory.Append("<streams>\n"); this.ListStreams(list); foreach (Hashtable hashtable in list) { theory.Append(this.DescribeStream(hashtable["TABLE_NAME"].ToString())); } theory.Append("</streams>\n"); document.LoadXml(theory.ToString()); return document; }
protected void AppendSortSpecification(StringTheory spec, Item entity) { ArrayList coll = entity.getSortList(); if (coll.Count > 0) { spec.Append(" ORDER BY "); spec.Join(coll, ", "); } }
// Methods protected void BuildCondition(StringTheory condition, Item entity) { Hashtable hashtable = entity.getBoxView(); Field field = null; foreach (string str in hashtable.Keys) { field = (Field)hashtable[str]; if (field.Touched()) { if (condition.Length > 0) { condition.Append(" AND "); } if (field.Length < 1) { condition.Append(" ( len(" + str + ") < 1 or " + str + " IS NULL ) "); } else { condition.Append(str); condition.Append("="); condition.Append(field.toSql()); } } if (field.hasAttributes()) { string[] strArray = field.getAttributes(); for (int i = 0; i < strArray.Length; i++) { if (condition.Length > 0) { condition.Append(" AND "); } condition.Append(str); condition.Append(strArray[i]); } } } }
public string getXml() { StringTheory theory = new StringTheory("<%islandName%>%body%</%islandName%>\n"); StringTheory val = new StringTheory(); StringTheory theory3 = new StringTheory(); foreach (string str in this.getFieldNames()) { val.Renew(" <%fieldName%>%fieldValue%</%fieldName%>\n"); val.Replace("%fieldName%", str.ToLower()); val.Replace("%fieldValue%", ((Field)this[str]).getValue()); theory3.Append(val); } theory.Replace("%islandName%", this.StreamName.ToLower()); theory.Replace("%body%", theory3); return theory.ToString(); }
public string DescribeStream(string stream) { StringTheory theory = new StringTheory("<stream name=\"%stream%\">\n%fields%</stream>\n"); StringTheory theory2 = new StringTheory(); ArrayList list = new ArrayList(); this.ListColumns(stream, list); theory.Replace("%stream%", stream); foreach (Hashtable hashtable in list) { theory2.Append("<field name=\"%COLUMN_NAME%\" type=\"%DATA_TYPE%\" identity=\"%IDENTITY%\"/>\n"); theory2.Populate(hashtable, "%*%"); theory2.Replace("%IDENTITY%", this.IsIdentity(hashtable)); } theory.Replace("%fields%", theory2); return theory.ToString(); }