Exemplo n.º 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);
 }
Exemplo n.º 2
0
        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;
             }
        }
Exemplo n.º 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;

            }
        }
        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;
            }
        }
Exemplo n.º 5
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();
     }
 }
Exemplo n.º 6
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);

                }
            }
        }
Exemplo n.º 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;
     }
 }