public DataFieldKeyAttribute(DataFieldKeys key, string keyName)
 {
     this.key = key;
     switch (key)
     {
         case DataFieldKeys.Primary:
             this.index = new PrimaryKey();
             break;
         case DataFieldKeys.Unique:
             this.index = new UniqueKey(keyName);
             break;
         case DataFieldKeys.Index:
             this.index = new Index(keyName);
             break;
         default:
             break;
     }
 }
Exemple #2
0
 public DataFieldInfo(string name, Type type, long length, Index key)
 {
     this.fieldName = name;
     this.fieldType = type;
     this.fieldLength = length;
     this.indicies = new List<Index>();
     this.indicies.Add(key);
     if (key != null)
     {
         this.key |= key.KeyType;
     }
     else
     {
         this.key = DataFieldKeys.None;
     }
 }
Exemple #3
0
 public DataFieldInfo(string name, Type type, long length, Index[] indicies)
 {
     this.fieldName = name;
     this.fieldType = type;
     this.fieldLength = length;
     this.indicies = new List<Index>();
     this.indicies.AddRange(indicies);
     foreach (Index index in indicies)
     {
         if (key != null)
         {
             this.key |= index.KeyType;
         }
     }
 }
Exemple #4
0
        public override Dictionary<Index, List<DataField>> GetIndexes(string tableName)
        {
            Dictionary<Index, List<DataField>> indexes = new Dictionary<Index, List<DataField>>(4);

            DataTable fieldTable = SelectQuery(string.Format("SHOW INDEXES FROM `{0}`",
                Mysql.Escape(tableName)));

            foreach (DataRow dr in fieldTable.Rows)
            {
                DataField df = new DataField((string)dr["Table"], (string)dr["Column_name"]);
                string key = (string)dr["Key_name"];

                Index index = null;

                if ((long)dr["Non_unique"] == 0)
                {
                    if (key == "PRIMARY")
                    {
                        index = new PrimaryKey();
                    }
                    else
                    {
                        index = new UniqueKey(key);
                    }
                }
                else
                {
                    index = new Index(key);
                }

                if (indexes.ContainsKey(index) == false)
                {
                    indexes.Add(index, new List<DataField>());
                }

                indexes[index].Add(df);
            }

            return indexes;
        }