예제 #1
0
        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());
        }
예제 #2
0
        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());
        }
예제 #3
0
        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
        }
예제 #4
0
 public void CombineExtendProperties(MySmo.IExtendPropertiesBase epb)
 {
     CombineExtendProperties(epb.ExtendedProperties);
 }
예제 #5
0
        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
        }