/// <summary> /// 获取架构语句,该执行的已经执行。 /// 如果取不到语句,则输出日志信息; /// 如果不是纯语句,则执行; /// </summary> /// <param name="sb"></param> /// <param name="onlySql"></param> /// <param name="schema"></param> /// <param name="values"></param> protected void PerformSchema(StringBuilder sb, Boolean onlySql, DDLSchema schema, params Object[] values) { String sql = GetSchemaSQL(schema, values); if (!String.IsNullOrEmpty(sql)) { if (sb.Length > 0) sb.AppendLine(";"); sb.Append(sql); //if (!onlySql) XTrace.WriteLine("修改表:" + sql); } else if (sql == null) { // 只有null才表示通过非SQL的方式处理,而String.Empty表示已经通过别的SQL处理,这里不用输出日志 // 没办法形成SQL,输出日志信息 StringBuilder s = new StringBuilder(); if (values != null && values.Length > 0) { foreach (Object item in values) { if (s.Length > 0) s.Append(" "); s.Append(item); } } IDataColumn dc = null; IDataTable dt = null; if (values != null && values.Length > 0) { dc = values[0] as IDataColumn; dt = values[0] as IDataTable; } switch (schema) { //case DDLSchema.CreateDatabase: // break; //case DDLSchema.DropDatabase: // break; //case DDLSchema.DatabaseExist: // break; //case DDLSchema.CreateTable: // break; //case DDLSchema.DropTable: // break; //case DDLSchema.TableExist: // break; case DDLSchema.AddTableDescription: WriteLog("{0}({1},{2})", schema, dt.Name, dt.Description); break; case DDLSchema.DropTableDescription: WriteLog("{0}({1})", schema, dt); break; case DDLSchema.AddColumn: WriteLog("{0}({1})", schema, dc); break; //case DDLSchema.AlterColumn: // break; case DDLSchema.DropColumn: WriteLog("{0}({1})", schema, dc.Name); break; case DDLSchema.AddColumnDescription: WriteLog("{0}({1},{2})", schema, dc.Name, dc.Description); break; case DDLSchema.DropColumnDescription: WriteLog("{0}({1})", schema, dc.Name); break; case DDLSchema.AddDefault: WriteLog("{0}({1},{2})", schema, dc.Name, dc.Default); break; case DDLSchema.DropDefault: WriteLog("{0}({1})", schema, dc.Name); break; //case DDLSchema.CreateIndex: // break; //case DDLSchema.DropIndex: // break; //case DDLSchema.BackupDatabase: // break; //case DDLSchema.RestoreDatabase: // break; default: WriteLog("修改表:{0} {1}", schema.ToString(), s.ToString()); break; } //WriteLog("修改表:{0} {1}", schema.ToString(), s.ToString()); } if (!onlySql) { try { SetSchema(schema, values); } catch (Exception ex) { WriteLog("修改表{0}失败!{1}", schema.ToString(), ex.Message); } } }
/// <summary> /// 获取架构语句,该执行的已经执行。 /// 如果取不到语句,则输出日志信息; /// 如果不是纯语句,则执行; /// </summary> /// <param name="sb"></param> /// <param name="onlySql"></param> /// <param name="schema"></param> /// <param name="values"></param> protected Boolean PerformSchema(StringBuilder sb, Boolean onlySql, DDLSchema schema, params Object[] values) { var sql = GetSchemaSQL(schema, values); if (!String.IsNullOrEmpty(sql)) { if (sb.Length > 0) { sb.AppendLine(";"); } sb.Append(sql); } else if (sql == null) { // 只有null才表示通过非SQL的方式处理,而String.Empty表示已经通过别的SQL处理,这里不用输出日志 // 没办法形成SQL,输出日志信息 var s = new StringBuilder(); if (values != null && values.Length > 0) { foreach (var item in values) { if (s.Length > 0) { s.Append(" "); } s.Append(item); } } IDataColumn dc = null; IDataTable dt = null; if (values != null && values.Length > 0) { dc = values[0] as IDataColumn; dt = values[0] as IDataTable; } switch (schema) { case DDLSchema.AddTableDescription: WriteLog("{0}({1},{2})", schema, dt.TableName, dt.Description); break; case DDLSchema.DropTableDescription: WriteLog("{0}({1})", schema, dt); break; case DDLSchema.AddColumn: WriteLog("{0}({1})", schema, dc); break; //case DDLSchema.AlterColumn: // break; case DDLSchema.DropColumn: WriteLog("{0}({1})", schema, dc.ColumnName); break; case DDLSchema.AddColumnDescription: WriteLog("{0}({1},{2})", schema, dc.ColumnName, dc.Description); break; case DDLSchema.DropColumnDescription: WriteLog("{0}({1})", schema, dc.ColumnName); break; default: WriteLog("修改表:{0} {1}", schema.ToString(), s.ToString()); break; } //WriteLog("修改表:{0} {1}", schema.ToString(), s.ToString()); } if (!onlySql) { try { SetSchema(schema, values); } catch (Exception ex) { WriteLog("修改表{0}失败!{1}", schema.ToString(), ex.Message); return(false); } } return(true); }
/// <summary> /// 获取架构语句,该执行的已经执行。 /// 如果取不到语句,则输出日志信息; /// 如果不是纯语句,则执行; /// </summary> /// <param name="sb"></param> /// <param name="onlySql"></param> /// <param name="schema"></param> /// <param name="values"></param> protected void PerformSchema(StringBuilder sb, Boolean onlySql, DDLSchema schema, params Object[] values) { String sql = GetSchemaSQL(schema, values); if (!String.IsNullOrEmpty(sql)) { if (sb.Length > 0) { sb.AppendLine(";"); } sb.Append(sql); //if (!onlySql) XTrace.WriteLine("修改表:" + sql); } else if (sql == null) { // 只有null才表示通过非SQL的方式处理,而String.Empty表示已经通过别的SQL处理,这里不用输出日志 // 没办法形成SQL,输出日志信息 StringBuilder s = new StringBuilder(); if (values != null && values.Length > 0) { foreach (Object item in values) { if (s.Length > 0) { s.Append(" "); } s.Append(item); } } IDataColumn dc = null; IDataTable dt = null; if (values != null && values.Length > 0) { dc = values[0] as IDataColumn; dt = values[0] as IDataTable; } switch (schema) { //case DDLSchema.CreateDatabase: // break; //case DDLSchema.DropDatabase: // break; //case DDLSchema.DatabaseExist: // break; //case DDLSchema.CreateTable: // break; //case DDLSchema.DropTable: // break; //case DDLSchema.TableExist: // break; case DDLSchema.AddTableDescription: WriteLog("{0}({1},{2})", schema, dt.Name, dt.Description); break; case DDLSchema.DropTableDescription: WriteLog("{0}({1})", schema, dt); break; case DDLSchema.AddColumn: WriteLog("{0}({1})", schema, dc); break; //case DDLSchema.AlterColumn: // break; case DDLSchema.DropColumn: WriteLog("{0}({1})", schema, dc.Name); break; case DDLSchema.AddColumnDescription: WriteLog("{0}({1},{2})", schema, dc.Name, dc.Description); break; case DDLSchema.DropColumnDescription: WriteLog("{0}({1})", schema, dc.Name); break; case DDLSchema.AddDefault: WriteLog("{0}({1},{2})", schema, dc.Name, dc.Default); break; case DDLSchema.DropDefault: WriteLog("{0}({1})", schema, dc.Name); break; //case DDLSchema.CreateIndex: // break; //case DDLSchema.DropIndex: // break; //case DDLSchema.BackupDatabase: // break; //case DDLSchema.RestoreDatabase: // break; default: WriteLog("修改表:{0} {1}", schema.ToString(), s.ToString()); break; } //WriteLog("修改表:{0} {1}", schema.ToString(), s.ToString()); } if (!onlySql) { try { SetSchema(schema, values); } catch (Exception ex) { WriteLog("修改表{0}失败!{1}", schema.ToString(), ex.Message); } } }