public virtual string InsertStatement(InsertQuery query) { query.Validate(); StringBuilder builder = new StringBuilder(); this.Insert(builder, query.TableName); builder.Append("("); this.InsertColumns(builder, query.Terms); builder.Append(") values ("); this.InsertValues(builder, query.Terms); builder.Append(")"); return builder.ToString(); }
private static string CreateInsertTableSQL(string[] keys, string[] fields, IList<string[]> vals, ITraceDb trace, bool canTraceAdd, DAODataTable ddt) { string str = null; if ((keys != null) || (keys.Length > 0)) { int length = keys.Length; int num2 = fields.Length; for (int i = 0; i < length; i++) { InsertQuery query = new InsertQuery(ddt.Name); foreach (DAODataColumn column in ddt.DataColumns) { object val = null; if (column.IsNeedInitial) { val = GetInitialValue(column.InitialValue); LoggingService.DebugFormatted("初始化字段:{0} 的值为:{1}", new object[] { column.Name, val }); } else if (column.Name.ToLower() == "createdate") { val = DateTimeHelper.GetNow(); } if (val != null) { try { query.Terms.Add(new UpdateTerm(column.Name, GetSqlExpression(column.DataType, val))); if (canTraceAdd) { trace.TraceOuterAdd(ddt.Name, keys[i], column.Name, val.ToString(), "系统新增字段值记录"); } } catch (Exception exception) { LoggingService.ErrorFormatted("在设置表:{0}字段:{1}初始化值:{2}时出错:{3}\r\n{4}", new object[] { ddt.Name, column.Name, val, exception.Message, exception.StackTrace }); } } } string[] strArray = vals[i]; UpdateTerm ut = new UpdateTerm(ddt.Key, SqlExpression.String(keys[i])); AddUpdateTerm(query.Terms, ut); if (canTraceAdd) { trace.TraceOuterAdd(ddt.Name, keys[i], "系统自动初始化数据新增记录"); } if (fields != null) { string str2 = string.Empty; for (int j = 0; j < num2; j++) { str2 = fields[j]; if (ddt.Contains(str2)) { ut = new UpdateTerm(str2, SqlExpression.String(strArray[j])); AddUpdateTerm(query.Terms, ut); if (canTraceAdd) { trace.TraceOuterAdd(ddt.Name, keys[i], str2, strArray[j], "系统新增字段值记录"); } } } } if (query.Terms.Count > 0) { str = SqlOmRenderHelper.Instance.RenderInsert(query); } } return str; } log.Error("没有找到初始化记录的关键字值,不能正确初始化"); return str; }
public virtual string RenderInsert(InsertQuery query) { return this.InsertStatement(query); }