/// <summary> /// Esegue il make delle regole modificate presenti nella tabella sptocompile /// </summary> /// <param name="Conn">Connessione</param> /// <returns>NULL se va a buon fine, altrimenti il msg di errore. In caso di errore /// la tabella non viene svuotata</returns> public static string MakeRules(DataAccess MainConn) { if (MainConn.GetSys("filterrule") == null) { return("Terminare l'aggiornamento, chiudere e riaprire il programma"); } string filterrule = MainConn.GetSys("filterrule").ToString(); DataAccess Conn = MainConn.Duplicate(); Conn.SetSys("filterrule", filterrule); //Indispensabile per calcolare le regole foreach (string k in MainConn.EnumSysKeys()) { Conn.SetSys(k, MainConn.GetSys(k)); } string filtereserc = "(ayear=" + QueryCreator.quotedstrvalue( MainConn.GetSys("esercizio"), true) + ")"; string filter_rules = "opkind <> 'M'"; DataTable Tsptocompile = Conn.RUN_SELECT("sptocompile", "tablename,opkind", null, null, null, true); if (Tsptocompile == null) { return("Terminare l'aggiornamento, chiudere e riaprire il programma"); } bool executed = false; //compilazione nuove regole foreach (DataRow R in Tsptocompile.Select(filter_rules)) { string s = EasyAudits.RecalcAudit(Conn, R["tablename"].ToString(), R["opkind"].ToString(), filterrule); if (s != null) { return(s); } executed = true; } string cmd = "delete from sptocompile where opkind <> 'M'"; if (executed) { Conn.SQLRunner(cmd); } Conn.Destroy(); return(null); }
public void MetaData_AfterPost() { if (lastdbtable == null) { return; } if (lastdboperation == null) { return; } string filterrule = Meta.GetSys("filterrule").ToString(); // RecalcRule(Meta.Conn, lastdbtable, lastdboperation); string err = EasyAudits.RecalcAudit(Meta.Conn, lastdbtable, lastdboperation, filterrule); if (err != null) { QueryCreator.ShowError(this, "Errore nella compilazione della s.p. " + lastdbtable + "(" + lastdboperation + ")" + ".", err); } }
public void Run() { if (Running) { return; } Running = true; tableexamined = 0; foreach (DataRow R in ToRecalc.Rows) { if (MustStop) { DialogResult = DialogResult.Cancel; Close(); return; } tableexamined++; txtTable.Text = R["tablename"].ToString(); // RecalcRule(Conn, R["dbtable"].ToString(), R["dboperation"].ToString()); string err = EasyAudits.RecalcAudit(Conn, R["tablename"].ToString(), R["opkind"].ToString(), filterrule); if (err != null) { QueryCreator.ShowError(this, "Errore nella compilazione della s.p. " + R["tablename"].ToString() + "(" + R["opkind"].ToString() + ").", err); } progBar.Value = tableexamined; //Application.DoEvents(); } //MessageBox.Show("Ricompilazione eseguita con successo"); DialogResult = DialogResult.OK; Close(); }