Beispiel #1
0
        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);
        }
        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)
     {
         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;
         }
     }
 }
Beispiel #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;
         }
     }
 }
Beispiel #5
0
        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);
                    }
                }
            }
        }
Beispiel #6
0
 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();
     }
 }
Beispiel #7
0
 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;
         }
     }
 }