示例#1
0
        public override void Run()
        {
            // алгоритм работы
            /// Получам из таблицы MainParams данные о isLight
            /// на основании этого получает список таблиц для работы.
            /// перебирает таблицы и формирует запрос Select
            /// проверяет есть ли в запросе строка '{0}'
            ///     - это значит что надо перебирать по мостам
            ///     - при переборе по мостам так же запрос являеться шаблоном
            ///         используй string.format([запрос], idBR);
            ///     - если строка отсутствует то перебирать внутри
            ///         таблицы по мостам не надо а просто взять запрос Select
            ///  сформированный запрос модернизируется в
            ///     insert into BMEXPORT.[tablename] [запрос]
            /// при все этом учитаваем вызовы обратной связи
            ///  - OnExecute после кахдой таблицы
            ///  - передавать в args кол-во таблиц и номер текущей (для прогресс бара)
            ///  - проверять Running перед каждой итерацией и если false прекращать работу

            if (MainParams.GetParam(MainParams.ParamName.isLight) == "0")
            {
                lst = TableInfo.LoadTables(TableInfo.WayType.AllImport);
            }
            else
            {
                lst = TableInfo.LoadTables(TableInfo.WayType.LightImport);
            }
            Exec();
        }
        private void InitializeMainParameters()
        {
            SelectBMZ            = new ClassCompositeBMZ();
            _mainParams          = new MainParams();
            _mainParamsViewModel = _mainParams.DataContext as VMMainParams;
            _mainParamsViewModel.ICommonParameters = this;

            _mainParamsViewModel.FillDate         = DateTime.Now.ToString("dd.MM.yyyy");
            _mainParamsViewModel.PropertyChanged += MainParamsViewModel_PropertyChanged;


            colectVMElementBuild     = new ObservableCollection <myDrawCollect>();
            colectVMElementTransform = new ObservableCollection <myDrawCollect>();
            colectVMElementDop       = new ObservableCollection <myDrawCollect>();
            colectVMElementADMIN     = new ObservableCollection <myDrawCollect>();
            colectVMElementDoor      = new ObservableCollection <myDrawCollect>();

            string query1 = "select * from _elementsBuild";
            string query2 = "select * from _elementsTransform order by nameElement, power ";
            string query3 = "select * from _additionalElements";
            string query4 = "select * from _elementsAdmin";
            string query5 = "select * from _elementsDoors";

            SetValueDB(colectVMElementBuild, query1);
            SetValueDB(colectVMElementTransform, query2);
            SetValueDB(colectVMElementDop, query3);
            SetValueDB(colectVMElementADMIN, query4);
            SetValueDB(colectVMElementDoor, query5);
        }
示例#3
0
        private void Exec()
        {
            count = 1;
            foreach (TableInfo info in lst)
            {
                if (Running)
                {
                    QueryExecOracle q      = new QueryExecOracle();
                    string          delete = info.sqlText[TableInfo.QryType.Clear];
                    List <string>   del    = new List <string>();
                    if (delete.Trim() != "") // Проверка на пустой запрос
                    {
                        if (delete.Contains("{0}"))
                        {
                            for (int i = 0; i < bridges.Count; i++)
                            {
                                del.Add(string.Format(delete, bridges[i].IDBR));
                            }
                        }
                        else
                        {
                            if (delete.Contains("{1}"))
                            {
                                del.Add(string.Format(delete, "", MainParams.GetParam(MainParams.ParamName.idGu)));
                            }
                        }
                    }

                    //  else del.Add(delete);
                    foreach (string s in del)
                    {
                        if (Running)
                        {
                            if (q.Execute(s))
                            {
                                Loging.Loging.WriteLog("OK: " + s, false, false);
                            }
                        }
                        else
                        {
                            Loging.Loging.WriteLog("Error: " + s, true, true);
                        }
                    }
                    Coordinator.ExecuteDelegateArgs args = new Coordinator.ExecuteDelegateArgs();
                    args.runningAction = this;
                    args.Name          = Name();
                    args.Maximum       = lst.Count;//передавать в args кол-во таблиц и номер текущей (для прогресс бара)
                    args.Pos           = count;
                    OnExecute(this, args);
                    count++;
                }
                else
                {
                    break;
                }
            }
        }
示例#4
0
 public void Exec()
 {
     count = 1;
     foreach (TableInfo info in lst)
     {
         if (Running)
         {
             QueryExecOracle q      = new QueryExecOracle();
             string          select = info.sqlText[TableInfo.QryType.SelectBM];
             List <string>   sel    = new List <string>();
             if (select.Contains("{0}"))
             {
                 foreach (int i in idBr)
                 {
                     sel.Add(string.Format(select, i));
                 }
             }
             else
             {
                 sel.Add(string.Format(select, "", MainParams.GetParam(MainParams.ParamName.idGu)));
             }
             List <string> ins = new List <string>();
             foreach (string s in sel)
             {
                 ins.Add("insert into BMEXPORT." + info.tableName + " " + s);
             }
             foreach (string s in ins)
             {
                 if (q.Execute(s))
                 {
                     Loging.Loging.WriteLog("OK: " + s, false, false);
                 }
                 else
                 {
                     Loging.Loging.WriteLog("Error: " + s, true, true);
                 }
             }
             Coordinator.ExecuteDelegateArgs args = new Coordinator.ExecuteDelegateArgs();
             args.runningAction = this;
             args.Name          = Name();
             args.Maximum       = lst.Count;//передавать в args кол-во таблиц и номер текущей (для прогресс бара)
             args.Pos           = count;
             OnExecute(this, args);
             count++;
         }
         else
         {
             break;
         }
     }
 }
示例#5
0
        public override void Run()
        {
            /// алгоритм
            /// ѕолучаем из таблицы MainParams данные о isLight
            /// на основании этого получает список таблиц дл¤ работы.
            /// перебирает таблицы и выполн¤ет запрос
            /// delete from BMEXPORT.[tableName] - ¬ Oracle
            /// delete from [tableName] - PDA
            /// при все этом учитываем вызовы обратной св¤зи
            ///  - OnExecute после кахдой таблицы
            ///  - передавать в args кол-во таблиц и номер текущей (дл¤ прогресс бара)
            ///  - провер¤ть Running перед каждой итерацией и если false прекращать работу
            //--

            if (MainParams.GetParam(MainParams.ParamName.isLight) == "0")
            {
                lst = TableInfo.LoadTables(TableInfo.WayType.AllImport);
            }
            else
            {
                lst = TableInfo.LoadTables(TableInfo.WayType.LightImport);
            }
            Exec();
        }
 public override void Run()
 {
     /// алгоритм
     /// 1. Получить список таблиц (как в предыдущих)
     /// 2. для каждой таблицы считать данные из EXPORT
     ///      Oracle: select * from BMEXPORT.[tablename]
     /// 3. создать шаблон инсерта для таблицы на основании списка полей
     ///     insert into [tablename]([поле1], [поле2], .... , ) values ('{0}', '{1}' ... )
     /// 4. перебирая данные выбранные на этапе 2 последовательно формировать
     ///     для каждой строки sql запрос на основании списка таблиц и шаблона
     ///     и выполнять его в базе КПК.
     ///     -   прогресс бар вести по таблицам.
     ///     -   не забыть лог
     ///     -   не забыть Running
     if (MainParams.GetParam(MainParams.ParamName.isLight) == "0")
     {
         lst = TableInfo.LoadTables(TableInfo.WayType.AllImport);
     }
     else
     {
         lst = TableInfo.LoadTables(TableInfo.WayType.LightImport);
     }
     Exec();
 }