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); }
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; } } }
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; } } }
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(); }