private void ReloadSchems()
        {
            Schems.Clear();
            using (SqlWork sqlWork = new SqlWork())
            {
                sqlWork.sql = @"SELECT catalog_name, schema_name 
                                FROM information_schema.schemata
                                WHERE schema_name not like 'pg_temp_%' 
	                                AND schema_name not like 'pg_toast_temp_%'
	                                AND schema_name not like 'information_schema'
	                                AND schema_name not like 'pg_catalog'
	                                AND schema_name not like 'pg_toast'
                                    AND schema_name not like 'rosreestr'
                                ORDER BY schema_name";
                sqlWork.ExecuteReader();
                while (sqlWork.CanRead())
                {
                    Schems.Add(new RSchemeM(sqlWork.GetString("schema_name")));
                }
            }
            if (Schems.Count > 0)
            {
                SelectedScheme = Schems[0];
            }
        }
 /// <summary>
 /// Запуск процедуры ремонта БД
 /// </summary>
 public void LaunchSuperFixDb(object parameter = null)
 {
     try
     {
         cti.ThreadProgress.ShowWait();
         using (SqlWork sqlWork = new SqlWork(true))
         {
             sqlWork.sql =
                 String.Format("SELECT * FROM sys_scheme.super_fix_db();");
             sqlWork.ExecuteReader();
             if (sqlWork.CanRead())
             {
                 if (sqlWork.GetBoolean(0) == false)
                 {
                     MessageBox.Show("Ошибка выполнения функции!", "ERROR FUNCTION", MessageBoxButton.OK, MessageBoxImage.Error);
                 }
                 else
                 {
                     MessageBox.Show("Операция прошла успешно!");
                 }
             }
         }
         cti.ThreadProgress.Close();
     }
     catch (Exception ex)
     {
         cti.ThreadProgress.Close();
         MessageBox.Show(ex.Message);
     }
 }
Example #3
0
 /// <summary>Регистрация слоя
 /// </summary>
 /// <param name="idTable">ID таблицы</param>
 /// <param name="group">Группа</param>
 public static void RegisterTable(int idTable, String nameGroup)
 {
     if (Program.mapAdmin != null && !String.IsNullOrEmpty(nameGroup))
     {
         try
         {
             var   tableInfo = getTableInfo(idTable);
             Group groupInfo = Program.mapAdmin.SscGroups.Find(w => w.name == nameGroup);
             if (tableInfo != null && groupInfo != null)
             {
                 Program.mapAdmin.RegisterTable(Program.app.getTableInfo(idTable), groupInfo);
                 var group = Program.group_info_full.Find(w => w.name == groupInfo.name);
                 if (group.id != 0)
                 {
                     using (SqlWork sqlCmd = new SqlWork())
                     {
                         sqlCmd.sql = String.Format("SELECT sys_scheme.add_table_in_group({0}, {1});", idTable, group.id);
                         sqlCmd.ExecuteNonQuery();
                     }
                 }
                 Program.mapAdmin.ReloadInfo();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show("Ошибка при регистрации в MapAdmin:" + Environment.NewLine + ex.Message, Properties.Resources.AET_CreatingTable, MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
Example #4
0
        /// <summary>
        /// Удалить объект
        /// </summary>
        private void DeleteObject(object obj = null)
        {
            if (!CanDeleteObject(obj))
            {
                return;
            }
            using (SqlWork sqlCmd = new SqlWork(_connect, _isDebug))
            {
                var arrayParams = new IParams[]
                {
                    new Interfaces.Params(":id", obj, PgM.PgFieldM.GetDbType(_table.PrimaryKeyField.Type))
                };
                sqlCmd.sql = string.Format(@"
                        DELETE FROM 
                            {0}.{1} 
                        WHERE 
                            {2} = :id;
                        ",
                                           _table.SchemeName,
                                           _table.Name,
                                           _table.PrimaryKey);

                sqlCmd.ExecuteNonQuery(arrayParams);
            }
            Source.SetEventAttribute(_table, obj, PgM.PgAttributes.attributeTypeChange.Delete);
        }
Example #5
0
        public void reloadTables()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();

            List <itemObjOrdered> list_of_tables         = new List <itemObjOrdered>();
            List <itemObjOrdered> list_of_tables_visible = new List <itemObjOrdered>();

            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id,name_map,order_num,default_visibl FROM " + Program.scheme + ".table_info WHERE type=1 ORDER BY order_num";
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObjOrdered item = new itemObjOrdered(sqlCmd.GetInt32(0), sqlCmd.GetString(1), sqlCmd.GetBoolean(3).ToString(), sqlCmd.GetInt32(2));
                list_of_tables.Add(item);
                if (item.Layer.Contains("True"))
                {
                    list_of_tables_visible.Add(item);
                }
            }
            sqlCmd.Close();

            listBox1.Items.AddRange(list_of_tables_visible.ToArray());
            listBox2.Items.AddRange(list_of_tables.ToArray());

            label6.Text = changeTextOfCount(listBox1.Items.Count);
            label7.Text = changeTextOfCount(listBox2.Items.Count);
        }
        private void SaveFile(string pathFile, int idFile, PgM.PgTableBaseM table)
        {
            FileStream   FS;
            BinaryWriter BW;

            FS = new FileStream(pathFile, FileMode.OpenOrCreate, FileAccess.Write);
            BW = new BinaryWriter(FS);
            var Param = new IParams[]
            {
                new Params(":id_file", idFile, DbType.Int32)
            };

            using (SqlWork sqlCmd = new SqlWork((table.Source as PgVM.PgDataRepositoryVM).Connect))
            {
                sqlCmd.sql = string.Format(@"SELECT ""{2}"" FROM ""{0}"".""{1}"" WHERE id = :id_file;",
                                           table.SchemeName,
                                           table.FileInfo.TableName,
                                           table.FileInfo.FieldFile);

                sqlCmd.ExecuteReader(Param);

                if (sqlCmd.CanRead())
                {
                    BW.Write(sqlCmd.GetBytes(0));
                }
            }
            BW.Close();
            FS.Close();
        }
Example #7
0
        public List <itemObj> GetGroupsWithTable(int id, bool with)
        {
            List <itemObj> list_of_tables = new List <itemObj>();
            SqlWork        sqlCmd         = new SqlWork();

            if (with)
            {
                sqlCmd.sql = "SELECT * FROM " + Program.scheme + ".get_group_list_for_table(" + id.ToString() + ")";
            }
            else
            {
                sqlCmd.sql = "SELECT * FROM " + Program.scheme + ".get_group_list_no_for_table(" + id.ToString() + ")";
            }

            try
            {
                sqlCmd.Execute(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                sqlCmd.Close();
                return(null);
            }
            while (sqlCmd.CanRead())
            {
                int     id_table   = sqlCmd.GetInt32(0);
                string  name_group = sqlCmd.GetString(1);
                string  descript   = sqlCmd.GetString(2);
                itemObj io         = new itemObj(id_table, name_group, descript);
                list_of_tables.Add(io);
            }
            sqlCmd.Close();
            return(list_of_tables);
        }
Example #8
0
        /// <summary>
        /// Удаляет группу с определенным ID, пересчитывает их порядок
        /// </summary>
        /// <param name="id">ID группы</param>
        public void DeleteGroup(int id)
        {
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "DELETE FROM " + Program.scheme + ".table_groups WHERE id=" + id.ToString() + " RETURNING name_group";
            try
            {
                sqlCmd.Execute(false);
                if (sqlCmd.CanRead())
                {
                    string name_gr = sqlCmd.GetString(0);
                    Rekod.Classes.workLogFile.writeLogFile("deleted group --> id=" + id.ToString() + " name_group=" + name_gr, false, false);
                }
            }
            catch (NpgsqlException ex)
            {
                if (ex.Code.CompareTo("42501") == 0)
                {
                    MessageBox.Show(Rekod.Properties.Resources.GF_ErrorCreateGroup);
                }
                else
                {
                    throw ex;
                }
            }
            finally
            {
                sqlCmd.Close();
            }

            List <itemObjOrdered> newGroupsOrder = getRecalcedGroupsOrderList();

            SetGroupsOrder(newGroupsOrder);
        }
Example #9
0
        public itemObj GetGroup(int id_gr)
        {
            itemObj group  = null;
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT name_group,descript FROM " + Program.scheme + ".table_groups WHERE id=" + id_gr.ToString();
            try
            {
                sqlCmd.Execute(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                sqlCmd.Close();
                return(null);
            }
            if (sqlCmd.CanRead())
            {
                string name_gr = sqlCmd.GetString(0);
                string desc_gr = sqlCmd.GetString(1);
                group = new itemObj(id_gr, name_gr, desc_gr);//использую уже готовую структуру, вместо Layer там будет храниться описание
            }
            sqlCmd.Close();

            return(group);
        }
Example #10
0
        public void SaveGroup(int id_gr, string name_gr, string desc_gr)
        {
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "UPDATE " + Program.scheme + ".table_groups SET name_group=@name_group, descript=@descript WHERE id=" + id_gr.ToString();
            //"SELECT name_group,descript FROM " + Program.scheme + ".table_groups WHERE id=" + id_gr.ToString();
            Params[] parms = new Params[2];

            parms[0]           = new Params();
            parms[0].paramName = "@name_group";
            parms[0].typeData  = NpgsqlTypes.NpgsqlDbType.Text;
            parms[0].value     = name_gr;

            parms[1]           = new Params();
            parms[1].paramName = "@descript";
            parms[1].typeData  = NpgsqlTypes.NpgsqlDbType.Text;
            parms[1].value     = desc_gr;

            try
            {
                sqlCmd.ExecuteNonQuery(parms);
            }
            catch (NpgsqlException ex)
            {
                MessageBox.Show(ex.BaseMessage);
            }
            finally
            {
                sqlCmd.Close();
            }
        }
        void Delete(object param = null)
        {
            if (!CanDelete(param))
            {
                return;
            }

            List <IParams> ListParams = new List <IParams>();
            List <string>  ListSQL    = new List <string>();

            for (int i = 0; i < FilesSelected.Count; i++)
            {
                ListParams.Add(new Params(":id_file" + i, FilesSelected[i].IdFile, DbType.Int32));
                ListSQL.Add(string.Format(
                                @"
                                DELETE 
                                FROM ""{0}"".""{1}"" 
                                WHERE ""{2}"" = :id_file{3}
                                RETURNING true;",
                                AttributeVM.Table.SchemeName,
                                AttributeVM.Table.FileInfo.TableName,
                                AttributeVM.Table.FileInfo.FieldId,
                                i));
            }
            using (var sqlCmd = new SqlWork(_connect))
            {
                sqlCmd.sql = string.Join("\n", ListSQL.ToArray());

                sqlCmd.ExecuteNonQuery(ListParams);
            }
            Reload();
        }
Example #12
0
        /// <summary>
        /// Метод загружает из базы все группы в List
        /// </summary>
        public List <itemObjOrdered> LoadGroups()
        {
            List <itemObjOrdered> list_groups = new List <itemObjOrdered>();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id,name_group,descript,order_num FROM " + Program.scheme + ".table_groups ORDER BY order_num";
            try
            {
                sqlCmd.Execute(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                sqlCmd.Close();
                return(null);
            }
            while (sqlCmd.CanRead())
            {
                int            id_gr     = sqlCmd.GetInt32(0);
                string         name_gr   = sqlCmd.GetString(1);
                string         desc_gr   = sqlCmd.GetString(2);
                int            order_num = sqlCmd.GetInt32(3);
                itemObjOrdered io        = new itemObjOrdered(id_gr, name_gr, desc_gr, order_num);//использую уже готовую структуру, вместо Layer там будет храниться описание
                list_groups.Add(io);
            }
            sqlCmd.Close();

            return(list_groups);
        }
Example #13
0
        private void comboBox9_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox9.SelectedItem != null)
            {
                comboBox10.Items.Clear();
                SqlWork sqlCmd = new SqlWork();
                sqlCmd.sql = "SELECT id, name_db, name_map FROM " + Program.scheme + ".table_field_info WHERE (type_field = 1 OR type_field = 6) AND id_table = " + ((itemObj)comboBox9.SelectedItem).Id_o.ToString();
                sqlCmd.Execute(false);
                while (sqlCmd.CanRead())
                {
                    itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                    comboBox10.Items.Add(item);
                }
                sqlCmd.Close();

                comboBox11.Items.Clear();
                sqlCmd     = new SqlWork();
                sqlCmd.sql = "SELECT id, name_db, name_map FROM " + Program.scheme + ".table_field_info WHERE type_field = 2 AND id_table = " + ((itemObj)comboBox9.SelectedItem).Id_o.ToString();
                sqlCmd.Execute(false);
                while (sqlCmd.CanRead())
                {
                    itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                    comboBox11.Items.Add(item);
                }
                sqlCmd.Close();
            }
        }
Example #14
0
        void RFieldM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "IsSelected")
            {
                if (IsSelected)
                {
                    using (SqlWork sqlWork = new SqlWork())
                    {
                        sqlWork.sql =
                            String.Format(
                                @"SELECT tfi.name_db, tfi.name_map, tfi.type_field, tfi.name_lable, tfi.id
                                  FROM sys_scheme.table_field_info tfi, sys_scheme.table_info ti
                                  WHERE ti.id = tfi.id_table 
                                      AND ti.scheme_name = '{0}' 
                                      AND ti.name_db = '{1}' 
	                                  AND tfi.name_db = '{2}';"    ,
                                _parentTable.ParentScheme.SchemeName,
                                _parentTable.Name,
                                Name);
                        sqlWork.ExecuteReader();
                        if (sqlWork.CanRead())
                        {
                            Text        = sqlWork.GetString("name_map");
                            Description = sqlWork.GetString("name_lable");
                            DataType    = sqlWork.GetValue <ERDataType>("type_field");
                            Id          = sqlWork.GetInt32("id");
                        }
                    }
                }
            }
        }
        private axVisUtils.Styles.objStylesM setStyleFromDB(int idT)
        {
            axVisUtils.Styles.objStylesM s1 = new axVisUtils.Styles.objStylesM();

            string sql = "SELECT fontname, fontcolor, fontframecolor, fontsize,";

            sql += " symbol,";
            sql += " pencolor, pentype, penwidth,";
            sql += " brushbgcolor, brushfgcolor, brushstyle, brushhatch";
            sql += " FROM " + Program.scheme + ".table_info WHERE id=" + id.ToString();
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = sql;
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                s1.FontStyle.FontName   = sqlCmd.GetString(0);
                s1.FontStyle.Color      = sqlCmd.GetValue <uint>(1);
                s1.FontStyle.FrameColor = sqlCmd.GetValue <uint>(2);
                s1.FontStyle.Size       = sqlCmd.GetInt32(3);

                s1.SymbolStyle.Shape = sqlCmd.GetValue <uint>(4);

                s1.PenStyle.Color = sqlCmd.GetValue <uint>(5);
                s1.PenStyle.Type  = sqlCmd.GetValue <ushort>(6);
                s1.PenStyle.Width = sqlCmd.GetValue <uint>(7);

                s1.BrushStyle.bgColor = sqlCmd.GetValue <uint>(8);
                s1.BrushStyle.fgColor = sqlCmd.GetValue <uint>(9);
                s1.BrushStyle.Style   = sqlCmd.GetValue <ushort>(10);
                s1.BrushStyle.Hatch   = sqlCmd.GetValue <ushort>(11);
            }
            sqlCmd.Close();
            return(s1);
        }
        private void cbRefTable_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbRefTable.SelectedItem != null)
            {
                cbRefLink.Items.Clear();
                cbRefFieldName.Items.Clear();
                cbFileNameColumn.Items.Clear();

                using (SqlWork sqlCmd = new SqlWork())
                {
                    sqlCmd.sql = "SELECT id, name_db, name_map, type_field FROM " + Program.scheme + ".table_field_info WHERE id_table = " + ((itemObj)cbRefTable.SelectedItem).Id_o.ToString();
                    sqlCmd.Execute(false);

                    while (sqlCmd.CanRead())
                    {
                        int     type_field = sqlCmd.GetInt32("type_field");
                        itemObj item       = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));

                        if (type_field == 1 || type_field == 6)
                        {
                            cbRefLink.Items.Add(item);
                        }
                        else if (type_field == 2)
                        {
                            cbRefFieldName.Items.Add(item);
                            cbFileNameColumn.Items.Add(item);
                        }
                    }
                }
            }
        }
        private void loadTableStyleField()
        {
            cbRefStyleField.Items.Clear();
            cbIntervalStyleField.Items.Clear();
            cbAngleColumn.Items.Clear();
            cbAngleColumn.Items.Add(new itemObj(-1, "<Не указано>", null));
            cbAngleColumn.SelectedIndex = 0;
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = String.Format(@"SELECT 
                                            tfi.id, tfi.name_db, tfi.name_map 
                                            FROM sys_scheme.table_field_info tfi
                                            INNER JOIN sys_scheme.table_info ti
                                            ON ti.id = tfi.id_table
                                            WHERE (tfi.type_field = 1 OR tfi.type_field = 6) 
                                                AND tfi.id_table = {0} AND tfi.name_db <> ti.pk_fileld", id);
            sqlCmd.Execute(false);
            while (sqlCmd.CanRead())
            {
                itemObj item = new itemObj(sqlCmd.GetInt32(0), sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2));
                cbRefStyleField.Items.Add(item);
                cbIntervalStyleField.Items.Add(item);
                cbAngleColumn.Items.Add(item);
            }
            sqlCmd.Close();
        }
Example #18
0
        public object Clone()
        {
            PgTableBaseM pgTable = this.MemberwiseClone() as PgTableBaseM;

            PgTableBaseM.UpdateIsNewTable(pgTable, true);

            int postfixIndex = 0;

            pgTable.Name = "";
            do
            {
                String newNameInBase = Name + "_copy" + ((postfixIndex == 0) ? "" : String.Format("_{0}", postfixIndex));
                String newText       = Text + " копия" + ((postfixIndex == 0) ? "" : String.Format(" {0}", postfixIndex));
                postfixIndex++;
                using (SqlWork sqlWork = new SqlWork((Source as PgVM.PgDataRepositoryVM).Connect))
                {
                    sqlWork.sql = String.Format("SELECT EXISTS(SELECT * FROM sys_scheme.table_info WHERE scheme_name = '{0}' AND name_db = '{1}')",
                                                SchemeName, newNameInBase);
                    if (!(Boolean)(sqlWork.ExecuteScalar()))
                    {
                        pgTable.Name = newNameInBase;
                        pgTable.Text = newText;
                    }
                }
            }while (String.IsNullOrEmpty(pgTable.Name));
            return(pgTable);
        }
Example #19
0
        private int?GetPageInTable(object id)
        {
            using (var sqlCmd = new SqlWork(_connect, _isDebug))
            {
                var arrayParams = new IParams[]
                {
                    new Params()
                    {
                        paramName = ":id",
                        type      = PgM.PgFieldM.GetDbType(_table.PrimaryKeyField.Type),
                        value     = id
                    }
                };
                sqlCmd.sql = string.Format(@"
                                            SELECT 
                                                row_num
                                            FROM 
                                                (
                                                    SELECT 
                                                        {2} 
                                                    FROM 
                                                        {0}.{1} 
                                                ) As tables
	                                            CROSS JOIN 
                                                    (
                                                        SELECT 
                                                            ARRAY
                                                            (
                                                                SELECT {2} 
			                                                    FROM {0}.{1}  
			                                                    ORDER BY {2}
                                                            ) As array_id
                                                    )  AS table_id
	                                            CROSS JOIN 
                                                        generate_series
                                                                (
                                                                    1, 
                                                                    (
                                                                        SELECT 
                                                                            COUNT(*) 
					                                                    FROM {0}.{1} 
                                                                    )
                                                                ) AS row_num
                                            WHERE 
                                                table_id.array_id[row_num] =  tables.{2} 
                                                AND tables.{2} = :id
                                            ORDER BY 
                                                row_num;",
                                           _table.SchemeName,
                                           _table.Name,
                                           _table.PrimaryKey);
                var value = sqlCmd.ExecuteScalar <int?>(arrayParams);
                if (value != null)
                {
                    return((value.Value / __pageMaxRows) + 1);
                }
                return(null);
            }
        }
Example #20
0
        private void loadNewLabelStyleIntoBase()
        {
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = SQL;
            sqlCmd.Execute(true);
            sqlCmd.Close();
        }
        private void loadTables()
        {
            cbRefTable.Items.Clear();
            cbIntervalTable.Items.Clear();

            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "SELECT id, name_db, name_map, type FROM " + Program.scheme + ".table_info ti WHERE map_style = true ORDER BY name_db";
            sqlCmd.Execute(false);

            int max_width_1 = 0, max_width_2 = 0;

            while (sqlCmd.CanRead())
            {
                itemObj item = new itemObj(sqlCmd.GetInt32(0),
                                           String.Format("{0} ({1})", sqlCmd.GetValue <string>(1), sqlCmd.GetValue <string>(2)),
                                           sqlCmd.GetValue <string>(1));

                Label tempLabel = new Label();

                switch (sqlCmd.GetInt32(3))
                {
                case 2:
                    cbRefTable.Items.Add(item);

                    tempLabel.Text = item.Name_o;
                    if (tempLabel.PreferredWidth > max_width_1)
                    {
                        max_width_1 = tempLabel.PreferredWidth;
                    }
                    break;

                case 3:
                    cbIntervalTable.Items.Add(item);

                    tempLabel.Text = item.Name_o;
                    if (tempLabel.PreferredWidth > max_width_2)
                    {
                        max_width_2 = tempLabel.PreferredWidth;
                    }
                    break;

                default:
                    break;
                }
            }

            if (max_width_1 > cbRefTable.DropDownWidth)
            {
                cbRefTable.DropDownWidth = max_width_1;
            }
            if (max_width_2 > cbIntervalTable.DropDownWidth)
            {
                cbIntervalTable.DropDownWidth = max_width_2;
            }

            sqlCmd.Close();
        }
        public void Reload(object param = null)
        {
            if (!CanReload(param))
            {
                return;
            }
            //new Thread(delegate()
            //    {
            List <PgAtM.PgAttributeFileM> listFiles = new List <PgAtM.PgAttributeFileM>();

            using (var SQLCmd = new SqlWork(_connect))
            {
                SQLCmd.sql = string.Format(@"
                                    SELECT ""{2}"", ""{4}"", dataupd, img_preview, file_name, is_photo
                                    FROM ""{0}"".""{1}""
                                    WHERE ""{4}"" = :id_obj
                                    ORDER BY file_name",
                                           AttributeVM.Table.SchemeName,
                                           AttributeVM.Table.FileInfo.TableName,
                                           AttributeVM.Table.FileInfo.FieldId,
                                           AttributeVM.Table.FileInfo.FieldFile,
                                           AttributeVM.Table.FileInfo.FieldIdObj);
                var Params = new IParams[]
                {
                    new Params(":id_obj", AttributeVM.AttributesListVM.PkAttribute.Value, (AttributeVM.AttributesListVM.PkAttribute.Field as PgM.PgFieldM).DbType)
                };
                SQLCmd.ExecuteReader(Params);
                bool hasPreview = false;
                while (SQLCmd.CanRead())
                {
                    var id       = SQLCmd.GetInt32(AttributeVM.Table.FileInfo.FieldId);
                    var file     = Files.FirstOrDefault(f => f.IdFile == id);
                    var fileName = SQLCmd.GetString("file_name");
                    if (file == null)
                    {
                        var preview = SQLCmd.GetBytes("img_preview");
                        hasPreview = (preview != null);

                        if (!hasPreview)
                        {
                            preview = FilePreviewController.GetIcon(System.IO.Path.GetExtension(fileName));
                        }
                        var imgPreview = FilePreviewController.GetBitmapImage(preview);

                        file = new PgAtM.PgAttributeFileM(
                            source: this,
                            idFile: id,
                            imgPreview: imgPreview);
                    }
                    file.Date     = SQLCmd.GetValue <DateTime>("dataupd");
                    file.FileName = fileName;
                    listFiles.Add(file);
                }
                ExtraFunctions.Sorts.SortList(_files, listFiles);
            }
            //}).Start();
        }
Example #23
0
        private void saveTable(int id, bool default_visibl, int order_num)
        {
            SqlWork sqlCmd = new SqlWork();

            sqlCmd.sql = "UPDATE " + Program.scheme + ".table_info SET default_visibl=" + default_visibl.ToString()
                         + ", order_num=" + order_num.ToString() + " WHERE id=" + id.ToString();
            sqlCmd.Execute(true);
            sqlCmd.Close();
        }
Example #24
0
        /// <summary>
        /// Поиск незанятого имени таблицы
        /// </summary>
        private string FindAcceptableTableName(string originalName, string name_scheme)
        {
            string name_table = originalName;

            if (classesOfMetods.isReservedName(name_table))
            {
                MessageBox.Show(Rekod.Properties.Resources.AET_NameIsReserved +
                                Environment.NewLine + Rekod.Properties.Resources.AET_ConNotSave + Environment.NewLine +
                                Rekod.Properties.Resources.AET_ChangeTable,
                                Rekod.Properties.Resources.AET_CreatingTable,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                return(null);
            }

            bool nameChanged = false;
            int  count       = 0;

            while (true)
            {
                using (SqlWork sqlQuery = new SqlWork())
                {
                    sqlQuery.sql = String.Format("SELECT count(*) FROM pg_tables WHERE tablename='{0}' AND schemaname='{1}';", name_table, name_scheme);
                    sqlQuery.ExecuteReader();
                    if (sqlQuery.CanRead())
                    {
                        if (sqlQuery.GetInt32(0) > 0)
                        {
                            nameChanged = true;
                            count++;
                        }
                        else
                        {
                            break;
                        }
                    }
                    name_table = originalName + count.ToString();
                }
            }
            if (nameChanged)
            {
                DialogResult dr = MessageBox.Show(Rekod.Properties.Resources.AET_AlreadyExistsTable + Environment.NewLine +
                                                  string.Format(Rekod.Properties.Resources.AET_SaveTableRename, name_table),
                                                  Rekod.Properties.Resources.AET_CreatingTable,
                                                  MessageBoxButtons.OKCancel,
                                                  MessageBoxIcon.Warning);
                if (dr == DialogResult.Cancel)
                {
                    MessageBox.Show(Rekod.Properties.Resources.AET_ConNotSave + Environment.NewLine + Rekod.Properties.Resources.AET_ChangeTable,
                                    Rekod.Properties.Resources.AET_CreatingTable,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    return(null);
                }
            }
            return(name_table);
        }
Example #25
0
        /// <summary>
        /// Возвращает список таблиц в(вне) группе
        /// </summary>
        /// <param name="id">ID группы</param>
        /// <param name="in_group">Если TRUE, то то список будет таблиц в группе, FALSE- список вне группы</param>
        /// <returns></returns>
        public List <itemObjOrdered> GetListTablesInOrOutGroup(int id, bool in_group)
        {
            List <itemObjOrdered> list_of_tables = new List <itemObjOrdered>();
            SqlWork sqlCmd = new SqlWork();

            if (in_group)
            {
                sqlCmd.sql = "SELECT t.id,t.name_db,t.name_map,g.order_num FROM " + Program.scheme + ".table_groups_table AS g,"
                             + Program.scheme + ".table_info AS t WHERE g.id_group=" + id.ToString() + " AND g.id_table=t.id AND t.type=1 and hidden = false ORDER BY g.order_num";
                try
                {
                    sqlCmd.Execute(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return(null);
                }
            }
            else
            {
                sqlCmd.sql =
                    "SELECT * FROM " +
                    "(SELECT t.id,t.name_db,t.name_map FROM " + Program.scheme + ".table_info AS t WHERE t.type=1 and hidden=false" +
                    " EXCEPT " +
                    "SELECT DISTINCT t.id,t.name_db,t.name_map FROM " + Program.scheme + ".table_groups_table AS g," + Program.scheme +
                    ".table_info AS t WHERE g.id_group=" + id.ToString() + " AND g.id_table=t.id and hidden = false " +
                    ")AS al ORDER BY al.name_map";
                try
                {
                    sqlCmd.Execute(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return(null);
                }
            }

            while (sqlCmd.CanRead())
            {
                int    id_table       = sqlCmd.GetInt32(0);
                string db_name_table  = sqlCmd.GetString(1);
                string map_name_table = sqlCmd.GetString(2);
                int    ord            = 0;
                if (in_group)
                {
                    ord = sqlCmd.GetInt32(3);
                }
                itemObjOrdered io = new itemObjOrdered(id_table, map_name_table, db_name_table, ord);
                list_of_tables.Add(io);
            }
            sqlCmd.Close();
            return(list_of_tables);
        }
Example #26
0
        /// <summary>
        /// Загрузка связанных таблиц
        /// </summary>
        private void LoadRelatedTables(object idObject)
        {
            if (idObject != null && (_table.Type == AbsM.ETableType.Data || _table.Type == AbsM.ETableType.MapLayer))
            {
                RelatedTables.Clear();
                using (SqlWork sqlWork = new SqlWork(Connect))
                {
                    // Запрос для получения идентификаторов связанных таблиц
                    sqlWork.sql = String.Format(@"SELECT tfi.id_table, tfi.name_db, tfi.ref_field
                                    FROM sys_scheme.table_field_info tfi 
                                    INNER JOIN sys_scheme.table_info ti ON tfi.id_table = ti.id
                                    INNER JOIN sys_scheme.table_type_table ttt ON ttt.id = ti.type
                                    WHERE tfi.ref_table = {0} AND (ttt.id = 1 OR ttt.id = 4)", _table.Id);
                    sqlWork.ExecuteReader();
                    while (sqlWork.CanRead())
                    {
                        int    idTable    = sqlWork.GetInt32("id_table");
                        string colName    = sqlWork.GetString("name_db");
                        int    refFieldId = sqlWork.GetInt32("ref_field");

                        PgM.PgFieldM field = _table.Fields.FirstOrDefault(f => f.Id == refFieldId) as PgM.PgFieldM;

                        if (field != null && field.Table != null && field.Table.Id is int &&
                            classesOfMetods.getRefTableRight(_table.Id, (int)field.Table.Id))
                        {
                            PgAtM.PgAttributeM attr        = _attributesListVM.Attributes.FirstOrDefault(a => a.Field == field);
                            String             filterValue = null;
                            if (attr.Value != null)
                            {
                                filterValue = attr.Value.ToString();
                            }

                            PgM.PgTableBaseM pgTable = _table.Source.Tables.FirstOrDefault(p => (int)p.Id == idTable) as PgM.PgTableBaseM;
                            if (pgTable != null)
                            {
                                FilterRelationModel filterRM = new FilterRelationModel()
                                {
                                    Type    = TypeRelation.ELEMENT,
                                    Element = new FilterElementModel()
                                    {
                                        Column = colName,
                                        Type   = TypeOperation.Equal,
                                        Value  = filterValue
                                    }
                                };
                                RelatedTables.Add(new PgTV.PgTableViewVM(pgTable, filterRM));
                            }
                        }
                    }
                    sqlWork.Close();
                }
            }
            OnPropertyChanged("HasRelatedTables");
        }
Example #27
0
        /// <summary>
        /// Открывает окно для редактирования стиля
        /// </summary>
        public void EditStyle(object parameter = null)
        {
            using (SqlWork sqlWork = new SqlWork(_connect))
            {
                sqlWork.sql =
                    String.Format(@"SELECT {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}
                                    FROM sys_scheme.style_object_info
                                    WHERE id_table={12} AND id_obj={13}",
                                  "fontname",
                                  "fontcolor",
                                  "fontframecolor",
                                  "fontsize",
                                  "brushbgcolor",
                                  "brushfgcolor",
                                  "brushstyle",
                                  "brushhatch",
                                  "pencolor",
                                  "pentype",
                                  "penwidth",
                                  "symbol",
                                  _table.Id,
                                  _pkAttribute.Value);
                sqlWork.ExecuteReader();
                sqlWork.CanRead();

                String fontname       = sqlWork.GetString(0);
                Int32  fontcolor      = sqlWork.GetInt32(1);
                Int32  fontframecolor = sqlWork.GetInt32(2);
                Int32  fontsize       = sqlWork.GetInt32(3);

                Int32 brushbgcolor = sqlWork.GetInt32(4);
                Int32 brushfgcolor = sqlWork.GetInt32(5);
                Int16 brushstyle   = (short)sqlWork.GetInt32(6);
                Int16 brushhatch   = (short)sqlWork.GetInt32(7);

                Int32 pencolor = sqlWork.GetInt32(8);
                Int32 pentype  = sqlWork.GetInt32(9);
                Int32 penwidth = sqlWork.GetInt32(10);
                Int32 symbol   = sqlWork.GetInt32(11);

                sqlWork.Close();

                Style.SetFont(fontname, fontcolor, fontframecolor, fontsize);
                Style.SetBrush(brushbgcolor, brushfgcolor, brushhatch, brushstyle);
                Style.SetPen(pencolor, pentype, penwidth);
                Style.SetSymbol(symbol);
            }

            PgV.ObjectStyleEditV styleWindow = new PgV.ObjectStyleEditV();
            styleWindow.DataContext = this;
            styleWindow.Owner       = Program.WinMain;
            styleWindow.Show();
        }
        private void loadDaipazonInfo(int id_table)
        {
            loadColumsForDiapazon(id_table);
            SqlWork sqlCmd = new SqlWork();

            typeColors = new List <itemObj>();
            typeColors.Add(new itemObj(0, Rekod.Properties.Resources.PTC_BasicElement, ""));
            typeColors.Add(new itemObj(1, Rekod.Properties.Resources.PTC_Background, ""));
            typeColors.Add(new itemObj(2, Rekod.Properties.Resources.PTC_BordersAndLines, ""));
            typeColors.Add(new itemObj(3, Rekod.Properties.Resources.PTC_BorderSymbol, ""));
            sqlCmd.sql = "SELECT range_colors, range_column, precision_point, type_color, min_color, " +
                         "min_val, max_color, max_val, use_min_val, use_max_val, null_color, " +
                         "use_null_color, geom_type FROM " + Program.scheme + ".table_info WHERE id = " + id_table;
            sqlCmd.Execute(false);
            if (sqlCmd.CanRead())
            {
                switch (sqlCmd.GetInt32(12))
                {
                case 0:    //Без геометрии
                    Classes.workLogFile.writeLogFile(new Exception("Загружена таблица без геометрии"), true, false);
                    break;

                case 1:    //Точки
                    typeColors.RemoveAt(2);
                    typeColors.RemoveAt(1);
                    break;

                case 2:    //Линии
                    typeColors.RemoveAt(3);
                    typeColors.RemoveAt(1);
                    typeColors.RemoveAt(0);
                    break;

                case 3:    //площадные
                    typeColors.RemoveAt(3);
                    break;
                }
                cbRangeColorChange.DataSource = typeColors;
                setComboBox(cbRangeValueField, sqlCmd.GetValue <string>(1));
                setComboBox(cbRangeColorChange, sqlCmd.GetInt32(3).ToString(), sqlCmd.GetInt32(3));

                numericUpDownRangePrec.Value     = sqlCmd.GetInt32(2);
                panelRangeMinColor.BackColor     = convColor(sqlCmd.GetValue <uint>(4));
                numericUpDownRangeMinValue.Value = sqlCmd.GetInt32(5);
                panelRangeMaxColor.BackColor     = convColor(sqlCmd.GetValue <uint>(6));
                numericUpDownRangeMaxValue.Value = sqlCmd.GetInt32(7);
                checkBoxRangeMin.Checked         = sqlCmd.GetBoolean(8);
                checkBoxRangeMax.Checked         = sqlCmd.GetBoolean(9);
            }
            sqlCmd.Close();
            numericUpDownRangeMinValue.Enabled = checkBoxRangeMin.Checked;
            numericUpDownRangeMaxValue.Enabled = checkBoxRangeMax.Checked;
        }
Example #29
0
        /// <summary>
        /// Метод для сохранения стиля
        /// </summary>
        public void SaveStyle(object parameter = null)
        {
            using (SqlWork sqlWork = new SqlWork(_connect))
            {
                sqlWork.BeginTransaction();
                sqlWork.sql =
                    String.Format(@"SELECT EXISTS (SELECT true FROM sys_scheme.style_object_info WHERE id_table={0} AND id_obj={1})",
                                  _table.Id,
                                  _pkAttribute.Value);
                bool exists = sqlWork.ExecuteScalar <Boolean>();
                if (!exists)
                {
                    sqlWork.sql = String.Format("INSERT INTO sys_scheme.style_object_info (id_table, id_obj) VALUES ({0}, {1})",
                                                _table.Id,
                                                _pkAttribute.Value);
                    sqlWork.ExecuteNonQuery();
                }

                sqlWork.sql =
                    String.Format(@"UPDATE sys_scheme.style_object_info SET
                                    fontname = '{0}', 
                                    fontcolor = {1}, 
                                    fontframecolor = {2}, 
                                    fontsize = {3}, 
                                    brushbgcolor = {4}, 
                                    brushfgcolor = {5}, 
                                    brushstyle = {6}, 
                                    brushhatch = {7}, 
                                    pencolor = {8}, 
                                    pentype = {9}, 
                                    penwidth = {10}, 
                                    symbol = {11}
                                    WHERE id_table = {12} AND id_obj = {13}",
                                  Style.FontName,
                                  Style.FontColor,
                                  Style.FontFrameColor,
                                  Style.FontSize,
                                  Style.BrushBgColor,
                                  Style.BrushFgColor,
                                  Style.BrushStyle,
                                  Style.BrushHatch,
                                  Style.PenColor,
                                  Style.PenType,
                                  Style.PenWidth,
                                  Style.Symbol,
                                  _table.Id,
                                  _pkAttribute.Value);
                sqlWork.ExecuteNonQuery();
                sqlWork.EndTransaction();
            }
        }
        private string select_name_db()
        {
            string  table_db = "";
            SqlWork sqlCmd   = new SqlWork();

            sqlCmd.sql = "SELECT name_db FROM " + Program.scheme + ".table_info WHERE id = " + id.ToString();
            sqlCmd.Execute(false);
            if (sqlCmd.CanRead())
            {
                table_db = sqlCmd.GetValue <string>(0);
            }
            sqlCmd.Close();
            return(table_db);
        }