예제 #1
0
        /// <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);
                }
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
                }
            }
        }