コード例 #1
0
        private String getTableCreateString()
        {
            StringBuilder str = new StringBuilder();
            str.Append(@"CREATE TABLE IF NOT EXISTS `{0}` (");

            var structure = new SpellEditor.Sources.DBC.Spell_DBC_Record();
            var fields = structure.GetType().GetFields();
            foreach (var f in fields)
            {
                switch (Type.GetTypeCode(f.FieldType))
                {
                    case TypeCode.UInt32:
                        {
                            str.Append(String.Format(@"`{0}` int(10) unsigned NOT NULL DEFAULT '0', ", f.Name));
                            break;
                        }
                    case TypeCode.Int32:
                        str.Append(String.Format(@"`{0}` int(11) NOT NULL DEFAULT '0', ", f.Name));
                        break;
                    case TypeCode.Single:
                        str.Append(String.Format(@"`{0}` FLOAT(25, 20) NOT NULL DEFAULT '0', ", f.Name));
                        break;
                    case TypeCode.Object:
                        {
                            var attr = f.GetCustomAttribute<SpellEditor.Sources.DBC.HandleField>();
                            if (attr != null)
                            {
                                if (attr.Method == 1)
                                {
                                    for (int i = 0; i < attr.Count; ++i)
                                        str.Append(String.Format(@"`{0}{1}` TEXT NOT NULL, ", f.Name, i));
                                    break;
                                }
                                else if (attr.Method == 2)
                                {
                                    for (int i = 0; i < attr.Count; ++i)
                                        str.Append(String.Format(@"`{0}{1}` int(10) unsigned NOT NULL DEFAULT '0', ", f.Name, i));
                                    break;
                                }
                            }
                            goto default;
                        }
                    default:
                        throw new Exception("ERROR: Unhandled type: " + f.FieldType + " on field: " + f.Name);

                }
            }

            str.Append(@"PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;");

            return str.ToString();
        }
コード例 #2
0
        public string getTableCreateString()
        {
            StringBuilder str = new StringBuilder();

            str.Append(@"CREATE TABLE IF NOT EXISTS `{0}` (");

            var structure = new SpellEditor.Sources.DBC.Spell_DBC_Record();
            var fields    = structure.GetType().GetFields();

            foreach (var f in fields)
            {
                switch (Type.GetTypeCode(f.FieldType))
                {
                case TypeCode.UInt32:
                {
                    str.Append(string.Format(@"`{0}` INTEGER(10) NOT NULL DEFAULT '0', ", f.Name));
                    break;
                }

                case TypeCode.Int32:
                    str.Append(string.Format(@"`{0}` INTEGER(11) NOT NULL DEFAULT '0', ", f.Name));
                    break;

                case TypeCode.Single:
                    str.Append(string.Format(@"`{0}` REAL NOT NULL DEFAULT '0', ", f.Name));
                    break;

                case TypeCode.Object:
                {
                    var attr = f.GetCustomAttribute <SpellEditor.Sources.DBC.HandleField>();
                    if (attr != null)
                    {
                        if (attr.Method == 1)
                        {
                            for (int i = 0; i < attr.Count; ++i)
                            {
                                str.Append(string.Format(@"`{0}{1}` TEXT, ", f.Name, i));
                            }
                            break;
                        }
                        else if (attr.Method == 2)
                        {
                            for (int i = 0; i < attr.Count; ++i)
                            {
                                str.Append(string.Format(@"`{0}{1}` INTEGER(10) NOT NULL DEFAULT '0', ", f.Name, i));
                            }
                            break;
                        }
                    }
                    goto default;
                }

                default:
                    throw new Exception("ERROR: Unhandled type: " + f.FieldType + " on field: " + f.Name);
                }
            }

            str.Append(@"PRIMARY KEY (`ID`));");

            return(str.ToString());
        }