Esempio n. 1
0
File: Row.cs Progetto: jlovenpk1/LOJ
 public Row(uint ID, DataBase.State InUse, object[] Values)
 {
     this.ID     = ID;
     this.InUse  = InUse;
     this.Values = Values;
 }
Esempio n. 2
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);
        }