Example #1
0
 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();
 }
Example #2
0
 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;
 }
Example #3
0
 public virtual string RenderInsert(InsertQuery query)
 {
     return this.InsertStatement(query);
 }