public string GetParametersExtendPropertiesString(MySmo.IExtendPropertiesBase mysmo_epb) { var dt = new DS.KeyValuePairDataTable(); var mysmo_pb = mysmo_epb as MySmo.IParameterBase; foreach (var mysmo_p in mysmo_pb.Parameters) { var cdt = new DS.KeyValuePairDataTable(); cdt.AddKeyValuePairRow(K_MS_Description, mysmo_p.Description); if (mysmo_p.ExtendedProperties != null) { foreach (var mysmo_ep in mysmo_p.ExtendedProperties) { cdt.AddKeyValuePairRow(mysmo_ep.Key, mysmo_ep.Value); } } var csb = new StringBuilder(); var csw = new StringWriter(csb); cdt.AcceptChanges(); cdt.WriteXml(csw); dt.AddKeyValuePairRow(mysmo_p.Name, csb.ToString()); } var sb = new StringBuilder(); var sw = new StringWriter(sb); dt.AcceptChanges(); dt.WriteXml(sw); return(sb.ToString()); }
public string GetColumnsExtendPropertiesString(MySmo.IExtendPropertiesBase mysmo_epb) { var dt = new DS.KeyValuePairDataTable(); var mysmo_tb = mysmo_epb as MySmo.ITableBase; foreach (var mysmo_c in mysmo_tb.Columns) { var cdt = new DS.KeyValuePairDataTable(); if (!(mysmo_epb is MySmo.Table || mysmo_epb is MySmo.UserDefinedTableType)) { cdt.AddKeyValuePairRow(K_MS_Description, mysmo_c.Description); } foreach (var mysmo_ep in mysmo_c.ExtendedProperties) { cdt.AddKeyValuePairRow(mysmo_ep.Key, mysmo_ep.Value); } var csb = new StringBuilder(); var csw = new StringWriter(csb); cdt.AcceptChanges(); cdt.WriteXml(csw); dt.AddKeyValuePairRow(mysmo_c.Name, csb.ToString()); } var sb = new StringBuilder(); var sw = new StringWriter(sb); dt.AcceptChanges(); dt.WriteXml(sw); return(sb.ToString()); }
public MySmo.ExtendedProperties GetExtendProperties(MySmo.IExtendPropertiesBase parent, Smo.ExtendedPropertyCollection epc) { #region implement var eps = new MySmo.ExtendedProperties { ParentExtendPropertiesBase = parent }; foreach (Smo.ExtendedProperty ep in epc) { eps.Add(ep.Name, ep.Value as string); } return(eps); #endregion }
public void CombineExtendProperties(MySmo.IExtendPropertiesBase epb) { CombineExtendProperties(epb.ExtendedProperties); }
public void SaveExtendProperty(MySmo.IExtendPropertiesBase mysmo_epb) { #region implement if (mysmo_epb is MySmo.Column) { throw new Exception("not implement"); } else if (mysmo_epb is MySmo.Parameter) { throw new Exception("not implement"); } else if (mysmo_epb is MySmo.Table) { var mysmo_t = mysmo_epb as MySmo.Table; var smo_db = _smo_server.Databases[mysmo_t.ParentDatabase.Name]; var smo_t = smo_db.Tables[mysmo_t.Name, mysmo_t.Schema]; SaveExtendProperty(smo_t, K_MS_Description, mysmo_t.Description); foreach (var mysmo_ep in mysmo_t.ExtendedProperties) { DeleteExtendProperty(smo_t, mysmo_ep.Key); SaveExtendProperty(smo_t, mysmo_ep.Key, mysmo_ep.Value); } foreach (var mysmo_c in mysmo_t.Columns) { var smo_c = smo_t.Columns[mysmo_c.Name]; SaveExtendProperty(smo_c, K_MS_Description, mysmo_c.Description); } DeleteExtendProperty(smo_t, K_ColumnSettings); SaveExtendProperty(smo_t, K_ColumnSettings, GetColumnsExtendPropertiesString(mysmo_t)); } else if (mysmo_epb is MySmo.View) { var mysmo_v = mysmo_epb as MySmo.View; var smo_db = _smo_server.Databases[mysmo_v.ParentDatabase.Name]; var smo_v = smo_db.Views[mysmo_v.Name, mysmo_v.Schema]; SaveExtendProperty(smo_v, K_MS_Description, mysmo_v.Description); foreach (var mysmo_ep in mysmo_v.ExtendedProperties) { DeleteExtendProperty(smo_v, mysmo_ep.Key); SaveExtendProperty(smo_v, mysmo_ep.Key, mysmo_ep.Value); } DeleteExtendProperty(smo_v, K_ColumnSettings); SaveExtendProperty(smo_v, K_ColumnSettings, GetColumnsExtendPropertiesString(mysmo_v)); } else if (mysmo_epb is MySmo.UserDefinedFunction) { var mysmo_f = mysmo_epb as MySmo.UserDefinedFunction; var smo_db = _smo_server.Databases[mysmo_f.ParentDatabase.Name]; var smo_f = smo_db.UserDefinedFunctions[mysmo_f.Name, mysmo_f.Schema]; SaveExtendProperty(smo_f, K_MS_Description, mysmo_f.Description); foreach (var mysmo_ep in mysmo_f.ExtendedProperties) { DeleteExtendProperty(smo_f, mysmo_ep.Key); SaveExtendProperty(smo_f, mysmo_ep.Key, mysmo_ep.Value); } DeleteExtendProperty(smo_f, K_ParameterSettings); SaveExtendProperty(smo_f, K_ParameterSettings, GetParametersExtendPropertiesString(mysmo_f)); if (mysmo_f.FunctionType == MySmo.UserDefinedFunctionType.Table) { DeleteExtendProperty(smo_f, K_ColumnSettings); SaveExtendProperty(smo_f, K_ColumnSettings, GetColumnsExtendPropertiesString(mysmo_f)); } } else if (mysmo_epb is MySmo.UserDefinedTableType) { var mysmo_tt = mysmo_epb as MySmo.UserDefinedTableType; var smo_db = _smo_server.Databases[mysmo_tt.ParentDatabase.Name]; var smo_tt = smo_db.UserDefinedTableTypes[mysmo_tt.Name, mysmo_tt.Schema]; SaveExtendProperty(smo_tt, K_MS_Description, mysmo_tt.Description); foreach (var mysmo_ep in mysmo_tt.ExtendedProperties) { DeleteExtendProperty(smo_tt, mysmo_ep.Key); SaveExtendProperty(smo_tt, mysmo_ep.Key, mysmo_ep.Value); } foreach (var mysmo_c in mysmo_tt.Columns) { var smo_c = smo_tt.Columns[mysmo_c.Name]; SaveExtendProperty(smo_c, K_MS_Description, mysmo_c.Description); } DeleteExtendProperty(smo_tt, K_ColumnSettings); SaveExtendProperty(smo_tt, K_ColumnSettings, GetColumnsExtendPropertiesString(mysmo_tt)); } else if (mysmo_epb is MySmo.StoredProcedure) { var mysmo_sp = mysmo_epb as MySmo.StoredProcedure; var smo_db = _smo_server.Databases[mysmo_sp.ParentDatabase.Name]; var smo_sp = smo_db.StoredProcedures[mysmo_sp.Name, mysmo_sp.Schema]; SaveExtendProperty(smo_sp, K_MS_Description, mysmo_sp.Description); foreach (var mysmo_ep in mysmo_sp.ExtendedProperties) { DeleteExtendProperty(smo_sp, mysmo_ep.Key); SaveExtendProperty(smo_sp, mysmo_ep.Key, mysmo_ep.Value); } DeleteExtendProperty(smo_sp, K_ColumnSettings); SaveExtendProperty(smo_sp, K_ParameterSettings, GetParametersExtendPropertiesString(mysmo_sp)); } else if (mysmo_epb is MySmo.Schema) { var mysmo_s = mysmo_epb as MySmo.Schema; var smo_db = _smo_server.Databases[mysmo_s.ParentDatabase.Name]; var smo_s = smo_db.Schemas[mysmo_s.Name]; foreach (var mysmo_ep in mysmo_s.ExtendedProperties) { DeleteExtendProperty(smo_s, mysmo_ep.Key); SaveExtendProperty(smo_s, mysmo_ep.Key, mysmo_ep.Value); } } else if (mysmo_epb is MySmo.Database) { var mysmo_db = mysmo_epb as MySmo.Database; var smo_db = _smo_server.Databases[mysmo_db.Name]; foreach (var mysmo_ep in mysmo_db.ExtendedProperties) { DeleteExtendProperty(smo_db, mysmo_ep.Key); SaveExtendProperty(smo_db, mysmo_ep.Key, mysmo_ep.Value); } } else { throw new Exception(mysmo_epb.GetType().Name + " is not support extend property"); } #endregion }