示例#1
0
        /// <summary>Добавить кеширующую таблицу</summary>
        static bool AddSynch(StartupLogo_Window.Loading_class Loading, string Name, string AlterName, ref DataBase.ITable Table, ref DataBase.ISTable SubTable, AddCols_delegate AddCols, bool Dedicate)
        {
            if (Loading != null)
            {
                Loading.LoadingComment = Name;
            }

            if (Table != null)
            {
                throw new Exception("Таблица уже существует!");
            }

            Table = data.T1.Tables.Add(Name, AlterName);
            AddCols(Table);
            Table.AutoSave(Dedicate, DataBase.TypeOfTable.Combine);

            if (Table.Parent.DataSourceEnabled)
            {
                SubTable = Table.CreateSubTable();
                SubTable.QUERRY().SHOW.DO();
                return(true);
            }
            else
            {
                if (Loading != null)
                {
                    Loading.LoadingComment = "Ошибка";
                }
                return(false);
            }
        }
示例#2
0
        void GetAutoForm(DataBase.ISTable SubTable)
        {
            if (LoadNew_check.Checked)
            {
                if (DeletedToo_check.Checked)
                {
                    SubTable.QUERRY(DataBase.State.None).SHOW.DO();
                }
                else
                {
                    SubTable.QUERRY().SHOW.DO();
                }
            }

            SubTable.GetAutoForm(AutoForm.ShowType.Admin).ShowDialog();
        }
示例#3
0
文件: Misc.cs 项目: jlovenpk1/LOJ
        static bool AddSynch(DataBase db, StartupLogo_Form.Loading_class Loading, string Name, string AlterName, ref DataBase.ITable Table, ref DataBase.ISTable SubTable, AddCols_delegate AddCols, bool Dedicate)
        {
            if (Loading != null)
            {
                Loading.LoadingComment = Name;
            }

            if (CheckTablesExist && Table != null)
            {
                throw new Exception("Таблица уже существует!");
            }

            Table = db.Tables.Add(Encoding.GetEncoding(866), Name, AlterName);
            AddCols(Table);

            Table.AutoSave(Dedicate, DataBase.TypeOfTable.Combine);

            if (Table.Parent.DataSourceEnabled || Table.Parent.type == DataBase.RemoteType.Local)
            {
                SubTable = Table.CreateSubTable();

                SubTable.QUERRY().SHOW.DO();
                return(true);
            }
            else
            {
                if (Loading != null)
                {
                    Loading.LoadingComment = "Ошибка";
                }
                return(false);
            }
        }
示例#4
0
        void GetAutoForm(DataBase.ISTable GetValue)
        {
            if ((bool)LoadNew_check.IsChecked)
            {
                GetValue.QUERRY(DataBase.State.None).SHOW.DO();
            }

            GetValue.GetAutoForm(AutoForm.ShowType.Admin).ShowDialog();
        }
示例#5
0
        /// <summary>Обновить список таблиц синхронизации</summary>
        /// <param name="UTable"></param>
        public void Invalidate(DataBase.ISTable UTable)
        {
            UTable.QUERRY().SHOW.DO();

            var UTableList = new List <UTable>();

            _uTable = UTable;

            for (int i = 0; i < DataBase.Tables.Count; i++)
            {
                if (DataBase.Tables[i].Name.ToLower() != _sPool.Parent.Name.ToLower() &&
                    DataBase.Tables[i].Name.ToLower() != UTable.Parent.Name.ToLower() &&
                    (DataBase.Tables[i].RemoteType != DataBase.RemoteType.Local || DataBase.type == DataBase.RemoteType.Local))
                {
                    UTableList.Add(new UTable(this, DataBase.Tables[i].CreateSubTable(false)));
                }
            }

            this.UTables = UTableList.ToArray();
        }
示例#6
0
        public uint[] GetSynches(int YM)
        {
            var DTFrom = ATMisc.GetDateTimeFromYM(YM).AddMilliseconds(-1);
            var DTTo   = ATMisc.GetDateTimeFromYM(YM + 1).AddMilliseconds(1);

            _sPool.QUERRY().SHOWL(C.SPool.Date).WHERE
            .AC(C.SPool.Date).More.BV(DTFrom)
            .AND.AC(C.SPool.Date).Less.BV(DTTo)
            .DO();

            var Synches = new uint[_sPool.Rows.Count];

            for (int i = 0; i < _sPool.Rows.Count; i++)
            {
                Synches[i] = _sPool.Rows.GetID(i);
            }

            return(Synches);
        }
示例#7
0
        public static bool SaveToDB(DataBase.ISTable table, uint id, DataBase.State state, object[] values)
        {
            //искать и заменять по индексерам полей неполучится, т.к. записи приходят уже измененные и невозможно определить чем оно там было до изменения
            //измененная запись придет в своём измененном виде
            //если происходят многократные изменения ключевых полей, тогда хреново, т.к. будут приходить многократные дубликаты с измененными ключевыми полями

            var RowExist = (bool)table.QUERRY(DataBase.State.None).EXIST.WHERE.ID(id).DO()[0].Value;

            if (RowExist)
            {
                var Set = table.QUERRY(DataBase.State.None).SET;

                switch (state)
                {
                case DataBase.State.Deleted:
                    Set.Delete();
                    break;

                case DataBase.State.Normal:
                    Set.UnDelete();
                    break;
                }

                try
                {
                    DataBase.ATSettings.AllowQuerryAutoConvertTypes = true;

                    for (int i = 0; i < values.Length; i++)
                    {
                        if (values[i] != null)
                        {
                            Set.C(i, values[i]);
                        }
                    }

                    Set.WHERE.ID(id).DO();
                }
                catch (Exception ex)
                {
                    DataBase.ATSettings.AllowQuerryAutoConvertTypes = false;

                    if (MessageBox.Show("В процессе добавления записи номер " + id.ToString() + " возникла ошибка:" + ex.Message.ToString() + "\nВы хотите продолжить загрузку?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
                    {
                        return(false);
                    }
                }

                DataBase.ATSettings.AllowQuerryAutoConvertTypes = false;
            }
            else
            {
                try
                { return(table.Rows.Add(id, values, state)); }
                catch (Exception ex)
                {
                    if (MessageBox.Show("В процессе добавления записи номер " + id.ToString() + " возникла ошибка:" + ex.Message.ToString() + "\nВы хотите продолжить загрузку?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }