private static void RestoreUser(object InData) { UserInfo userInfo = (UserInfo) InData; // Восстанавливаем данные QueryExecOracle q=new QueryExecOracle(); string restore = "update UserBM set offGU="+userInfo.offGU+", offText='"+userInfo.offText+"' where idGU="+userInfo.idGU; q.Execute(restore); }
public void Exec() { count = 1; foreach (TableInfo info in lst) { string ins = ""; if (Running) { QuerySelectPDA q = new QuerySelectPDA(); QueryExecOracle qu = new QueryExecOracle(); if (!q.Select("select * from " + info.tableName)) { Loging.Loging.WriteLog("Error:select * from " + info.tableName, true, true); } else { Loging.Loging.WriteLog("OK:select * from " + info.tableName, false, false); List<DataRows> dr = q.GetRows(); foreach (DataRows rows in dr) { string temp = ""; ins = "insert into " + info.tableName + "("; foreach (FieldInfo field in info.fields) { ins += field.fieldName + ", "; temp += "'" + rows.FieldByName(field.fieldName).Replace("'","''") + "', "; } ins = ins.Remove(ins.LastIndexOf(','), 1); temp = temp.Remove(temp.LastIndexOf(','), 1); ins += ") values (" + temp + ")"; if (!qu.Execute(ins)) { Loging.Loging.WriteLog("Error:" + ins, true, true); } else Loging.Loging.WriteLog("OK:" + ins, false, false); } } Coordinator.ExecuteDelegateArgs args = new Coordinator.ExecuteDelegateArgs(); args.Maximum = lst.Count;//передавать в args кол-во таблиц и номер текущей (для прогресс бара) args.Pos = count; args.runningAction = this; args.Name = Name(); OnExecute(this, args); count++; } else break; } }
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() { /// это пример использования /// Считали данные из таблицы /// Формируем для каждого изменения соответствующую отмену // заполняем if (Running) { string predsost = "select idGU, offGU, offText from UserBM"; QuerySelectOracle q = new QuerySelectOracle(); QueryExecOracle qe = new QueryExecOracle(); q.Select(predsost); List<DataRows> lst = q.GetRows(); foreach (DataRows rows in lst) { UserInfo userInfo = new UserInfo(); userInfo.idGU = int.Parse(rows.FieldByName("idGU")); userInfo.offGU = int.Parse(rows.FieldByName("offGu")); userInfo.offText = rows.FieldByName("offText"); FinallyStack.Add(RestoreUser, userInfo); } string running = "update UserBM set offGU=1, offText='Идет импорт'"; qe.Execute(running); // Удалять все сеансы кроме SYSTEM string showsessions = "SELECT s.sid,s.serial#,s.osuser,s.program FROM v$session s"; q.Select(showsessions); lst = q.GetRows(); foreach (DataRows rows in lst) { if(rows.FieldByName("osuser")!="SYSTEM") { string kill = "ALTER SYSTEM KILL SESSION '"+rows.FieldByName("sid")+","+rows.FieldByName("serial#")+"' IMMEDIATE"; qe.Execute(kill); } } //Реконнект DataBaseOracle.Disconnect(); DataBaseOracle.Get(); } }
public override void Run() { /// Алгоритм /// На основании данных таблицы КПК DisTriggers Включать/Выключать (зависит от On) /// тригерра (учитвать порядок - ord) /// - не забыть лог /// - не забыть Running if(Running) { string tr = "select * from DisTriggers order by ord"; string tri="Alter trigger {0} "; if(On) tri+= "Enable"; else tri += "Disable"; QuerySelectPDA q=new QuerySelectPDA(); QueryExecOracle qu = new QueryExecOracle(); if(!q.Select(tr)) { Loging.Loging.WriteLog("Error: " + tr, true, true); } else { Loging.Loging.WriteLog("OK: " + tr, false, false); } List<DataRows> dr; dr = q.GetRows(); foreach (DataRows rows in dr) { string TrName = rows.FieldByName("triggerName"); if(!qu.Execute(String.Format(tri,TrName))) Loging.Loging.WriteLog("Error: " + String.Format(tri, TrName), true, true); else Loging.Loging.WriteLog("OK: " + String.Format(tri, TrName), false, false); } } }
public void Exec() { count = 1; foreach (TableInfo info in lst) { if (Running) { QueryExecOracle q = new QueryExecOracle(); QueryExecPDA qu = new QueryExecPDA(); if (!q.Execute("delete from BMEXPORT." + info.tableName)) { Loging.Loging.WriteLog("Error:delete from BMEXPORT." + info.tableName, true, true); } else { Loging.Loging.WriteLog("OK:delete from BMEXPORT." + info.tableName, false, false); } if(!qu.Execute("delete from " + info.tableName)) { Loging.Loging.WriteLog("Error:delete from " + info.tableName, true, true); } else { Loging.Loging.WriteLog("OK:delete from " + info.tableName, false, false); } Coordinator.ExecuteDelegateArgs args = new Coordinator.ExecuteDelegateArgs(); args.Maximum = lst.Count;//передавать в args кол-во таблиц и номер текущей (дл¤ прогресс бара) args.Pos = count; args.runningAction = this; args.Name = Name(); OnExecute(this, args); count++; } else break; } }