public string GetCommand(string field, uint where, object value) { var builder = new SQLUpdate(); builder.Table = "creature_template"; builder.AddValue(field, value); builder.AddWhere("entry", where); return(builder.Build()); }
public void TestSQLUpdate() { var values = new Dictionary <Row <TestDataOnePK>, RowList <TestDataOnePK> > { { _valuesOnePk.ElementAt(0), _conditionsOnePk }, { _valuesOnePk.ElementAt(1), _conditionsOnePk } }; var update = new SQLUpdate <TestDataOnePK>(values); Assert.AreEqual("UPDATE `test_data_one_p_k` SET `ID`=4, `TestInt1`=5, `TestString1`='string2', `NoQuotes`=@CGUID WHERE `ID` IN (1, 2);" + Environment.NewLine + "UPDATE `test_data_one_p_k` SET `ID`=6, `TestInt1`=7, `NoQuotes`=@CGUID+1 WHERE `ID` IN (1, 2);" + Environment.NewLine, update.Build()); }
public bool Save() { ModelInfo info = GetInfo(this.GetType()); string[] fields = info.Fillables.Select <ModelField, String>(x => x.GetField()).ToArray(); object[] values = info.Fillables.Select <ModelField, Object>(x => x.GetValue(this)).ToArray(); if (info.PrimaryField != null) { object primaryVal = info.PrimaryField.GetInfo().GetValue(this); if (primaryVal != null) { SQLUpdate update = Database.PrimaryDB.Update(info.Table.Name) .Where(info.PrimaryField.GetField(), primaryVal); for (int i = 0; i < fields.Count(); i++) { update.Set(fields[i], values[i]); } return(update.Execute()); } } bool result = Database.PrimaryDB.Insert(info.Table.Name, fields) .Values(values) .Execute(); if (!result || info.PrimaryField == null) { return(result); } ResultMap results = Database.PrimaryDB.ExecuteQuery("SELECT LAST_INSERT_ID() as id;"); if (results == null) { return(false); } info.PrimaryField.SetValue(this, results.Results[0].Get("id")); return(true); }
public virtual string SerializeUpdate(SQLUpdate update) { if (String.IsNullOrEmpty(update.TableName)) throw new Exceptions.DatabaseObjectsException("TableName property has not been set."); else if (update.Fields.Count == 0) throw new Exceptions.DatabaseObjectsException("Field values have not been set."); else if (update.Fields.Any(field => String.IsNullOrEmpty(field.Name))) throw new Exceptions.DatabaseObjectsException("Field Name has not been set."); var fieldNameAndValues = String.Join(", ", update.Fields.Select(field => SerializeIdentifier(field.Name) + " = " + SerializeValue(field.Value)).ToArray()); var tokens = new TokenSerializer(); tokens.Add("UPDATE"); tokens.Add(SerializeIdentifier(update.TableName)); tokens.Add("SET"); tokens.Add(fieldNameAndValues); if (update.Where != null && !update.Where.IsEmpty) { tokens.Add("WHERE"); tokens.Add(SerializeConditions(update.Where)); } return tokens.ToString(); }
public Result Update(SQLUpdate sql) { return(Update(sql.TableName, sql.KVs, sql.Wh)); }
public void TestSQLUpdate() { var values = new Dictionary<Row<TestDataOnePK>, RowList<TestDataOnePK>> { {_valuesOnePk.ElementAt(0), _conditionsOnePk}, {_valuesOnePk.ElementAt(1), _conditionsOnePk} }; var update = new SQLUpdate<TestDataOnePK>(values); Assert.AreEqual("UPDATE `test_data_one_p_k` SET `ID`=4, `TestInt1`=5, `TestString1`='string2' WHERE `ID` IN (1, 2);" + Environment.NewLine + "UPDATE `test_data_one_p_k` SET `ID`=6, `TestInt1`=7 WHERE `ID` IN (1, 2);" + Environment.NewLine, update.Build()); }