internal override string DropNullConstraint(string table, ExtractedFieldMap field) { string ret = ""; Connection conn = pool.GetConnection(); conn.ExecuteQuery(String.Format(DropNotNullString,table,field.FieldName)); if (conn.Read()) ret=conn[0].ToString(); conn.CloseConnection(); if (ret == "") ret = String.Format(DropNullStringV2, table, field.FieldName); return ret; }
internal override string SetFieldDescription(string tableName, string fieldName, string description) { sTable tbl = pool.Mapping[pool.Mapping[tableName]]; List<string> pkeys = new List<string>(tbl.PrimaryKeyFields); foreach (sTableField fld in tbl.Fields){ if (fld.Name == fieldName){ ExtractedFieldMap efm = new ExtractedFieldMap(fieldName, MySqlConnection._TranslateFieldType(fld.Type, fld.Length), fld.Length, pkeys.Contains(fieldName), fld.Nullable,fld.ComputedCode); return string.Format( AlterFieldType(tableName,efm,efm)+(tbl.AutoGenField==fld.Name && pkeys.Count==1 ? " AUTO_INCREMENT ":"")+" COMMENT '{0}'", description.Replace("'", "''") ); } } return null; }
internal override string CreateColumn(string table, ExtractedFieldMap field) { if (field.ComputedCode!=null) return base.CreateColumn(table, field) + "\n" + string.Format(_CREATE_COMPUTED_TRIGGERS, table, field.FieldName, field.ComputedCode); return base.CreateColumn(table, field); }
internal override string AlterFieldType(string table, ExtractedFieldMap field, ExtractedFieldMap oldFieldInfo) { string ret = ""; if (!field.Nullable) ret = string.Format(AlterFieldTypeString, table, field.FieldName, field.FullFieldType, "NOT"); else ret = string.Format(AlterFieldTypeString, table, field.FieldName, field.FullFieldType, ""); if (field.ComputedCode!=null) { if (oldFieldInfo.ComputedCode != null) { if (oldFieldInfo.ComputedCode != field.ComputedCode) { ret += "\n" + this.DropTrigger(table + "_" + field.FieldName + "_UPDATE") + "\n" + this.DropTrigger(table + "_" + field.FieldName + "_DELETE"); ret += "\n" + string.Format(_CREATE_COMPUTED_TRIGGERS, table, field.FieldName, field.ComputedCode); } } else ret += "\n" + string.Format(_CREATE_COMPUTED_TRIGGERS, table, field.FieldName, field.ComputedCode); }else if (oldFieldInfo.ComputedCode!=null) ret += "\n" + this.DropTrigger(table + "_" + field.FieldName + "_UPDATE") + "\n" + this.DropTrigger(table + "_" + field.FieldName + "_DELETE"); return ret; }
internal override string CreateColumn(string table, ExtractedFieldMap field) { if (field.ComputedCode != null) return string.Format("ALTER TABLE[{0}] ADD [{1}] AS CONVERT({2},{3}) PERSISTED", table, field.FieldName, field.FullFieldType, field.ComputedCode); return base.CreateColumn(table, field); }
internal override string AlterFieldType(string table, ExtractedFieldMap field, ExtractedFieldMap oldFieldInfo) { if ((field.FullFieldType.ToUpper().Contains("BLOB")) || (oldFieldInfo.FullFieldType.ToUpper().Contains("BLOB"))) return DropColumn(table, field.FieldName) + ";" + CreateColumn(table, field) + ";"; return base.AlterFieldType(table, field, oldFieldInfo); }
internal override string CreateColumn(string table, ExtractedFieldMap field) { if (field.ComputedCode != null) return string.Format("ALTER TABLE {0} ADD {1} {2} COMPUTED BY {3}", table, field.FieldName, field.FullFieldType, field.ComputedCode); return base.CreateColumn(table, field); }