Esempio n. 1
0
        public static V8Field Field_from_tree(Tree field_tree, ref bool has_version, V8Table parent)
        {
            V8Field fld = new V8Field(parent);

            if (field_tree.Get_Type() != Node_Type.nd_string)
            {
                throw new Exception("Ошибка получения имени поля таблицы. Узел не является строкой.");
            }
            fld.Name = field_tree.Get_Value();

            field_tree = field_tree.Get_Next();


            Field_type_declaration type_declaration;

            try
            {
                type_declaration = Field_type_declaration.Parse_tree(field_tree);
            }
            catch
            {
                throw new Exception($"Поле {fld.Name}");
            }

            fld.Type         = type_declaration.Type;
            fld.Null_exists  = type_declaration.Null_exists;
            fld.Type_manager = FieldType.Create_type_manager(type_declaration);

            if (fld.Type == TypeFields.tf_version)
            {
                has_version = true;
            }
            return(fld);
        }
Esempio n. 2
0
        private DepotVer Get_depot_version(byte[] record)
        {
            DepotVer depotVer = DepotVer.UnknownVer;

            V8Field fldd_depotver = Table_depot.Get_field("DEPOTVER");

            if (fldd_depotver != null)
            {
                String Ver = fldd_depotver.Get_presentation(record, true);

                if (String.Compare(Ver, "0300000000000000") == 0)
                {
                    depotVer = DepotVer.Ver3;
                }
                else if (String.Compare(Ver, "0500000000000000") == 0)
                {
                    depotVer = DepotVer.Ver5;
                }
                else if (String.Compare(Ver, "0600000000000000") == 0)
                {
                    depotVer = DepotVer.Ver6;
                }
                else if (String.Compare(Ver, "0700000000000000") == 0)
                {
                    depotVer = DepotVer.Ver7;
                }
                else
                {
                    depotVer = DepotVer.UnknownVer;

                    //msreg_m.AddMessage_("Неизвестная версия хранилища", MessageState::Error, "Версия хранилища", Ver);
                    Console.WriteLine("Неизвестная версия хранилища");
                }

                return(depotVer);
            }

            return(depotVer);
        }