public void Update(IDGBase vl, IDBExecutor exec) { SchemaTable t = Schema.EnsureSchema(vl.GetType()); if (t != null) { SQUpdateQuery upd = new SQUpdateQuery() { UpdateTable = new SQAliasableObject(t.Table.Name), Condition = new SQCondition(t.Table.GetPrimaryKey().Name, SQRelationOperators.Equal, vl.ID.ToString()) }; PopulateSetQuery(upd, vl, t); upd.Execute(exec); } }
public virtual string Write(SQUpdateQuery q) { StringBuilder sb = new StringBuilder(); string fromClause = ""; if (q.Join != null) { fromClause = string.Format("\r\nFROM {0} {1}", GetSafeObjectName(q.UpdateTable.Actual.Write(this)) + (string.IsNullOrEmpty(q.UpdateTable.Alias) ? "" : " AS " + q.UpdateTable.Alias), Write(q.Join)); } // use the alias if there should be a from clause and the // table's alias is set string updateObject = !string.IsNullOrEmpty(fromClause) && !string.IsNullOrEmpty(q.UpdateTable.Alias) ? q.UpdateTable.Alias : GetSafeObjectName(q.UpdateTable.Actual.Write(this)); sb.AppendLine(string.Format("UPDATE {0} SET", updateObject)); for (int i = 0; i < q.SetPairs.Count; i++) { SQSetQueryPair pair = q.SetPairs[i]; sb.AppendLine((i == 0 ? "\t" : "\t,") + string.Format("{0} = {1}", GetSafeObjectName(pair.Left), pair.Right)); } if (!string.IsNullOrEmpty(fromClause)) { sb.AppendLine(fromClause); } if (q.Condition != null) { sb.AppendLine("WHERE " + Write(q.Condition)); } return(sb.ToString()); }
public virtual void Update(SQUpdateQuery query) { ExecuteQuery(Write(query), query.Parameters); }