} // checkTableSequences /// <summary> /// Check Table Sequence ID values /// </summary> /// <param name="ctx">context</param> /// <param name="sp">server process or null</param> private static void CheckTableID(Ctx ctx, SvrProcess sp) { if (MSysConfig.IsNativeSequence(false)) { String sql = "SELECT * FROM AD_Sequence " + "WHERE IsTableID='Y' " + "ORDER BY Name"; DataSet ds = null; int counter = 0; Trx trxName = null; if (sp != null) { trxName = sp.Get_Trx(); } try { ds = DataBase.DB.ExecuteDataset(sql, null, trxName); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { MSequence seq = new MSequence(ctx, ds.Tables[0].Rows[i], trxName); int curVal = DB.GetSQLValue(trxName, "select " + ds.Tables[0].Rows[i]["Name"].ToString() + "_SEQ.currval+1 from DUAL"); seq.SetCurrentNext(curVal); if (seq.Save()) { sp.AddLog(0, null, null, "Sequence Updated For :" + ds.Tables[0].Rows[i]["Name"].ToString()); counter++; } else { _log.Severe("Sequence Not Updated For :" + ds.Tables[0].Rows[i]["Name"].ToString()); } } } catch (Exception ex) { _log.Log(Level.SEVERE, sql, ex); } } else { int IDRangeEnd = DataBase.DB.GetSQLValue(null, "SELECT IDRangeEnd FROM AD_System"); if (IDRangeEnd <= 0) { IDRangeEnd = DataBase.DB.GetSQLValue(null, "SELECT MIN(IDRangeStart)-1 FROM AD_Replication"); } _log.Info("IDRangeEnd = " + IDRangeEnd); // String sql = "SELECT * FROM AD_Sequence " + "WHERE IsTableID='Y' " + "ORDER BY Name"; int counter = 0; //IDataReader idr = null; DataSet ds = null; Trx trxName = null; if (sp != null) { trxName = sp.Get_Trx(); } try { //pstmt = DataBase.prepareStatement(sql, trxName); //idr = DataBase.DB.ExecuteReader(sql, null, trxName); ds = DataBase.DB.ExecuteDataset(sql, null, trxName); //while (idr.Read()) for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { MSequence seq = new MSequence(ctx, ds.Tables[0].Rows[i], trxName); int old = seq.GetCurrentNext(); int oldSys = seq.GetCurrentNextSys(); if (seq.ValidateTableIDValue()) { if (seq.GetCurrentNext() != old) { String msg = seq.GetName() + " ID " + old + " -> " + seq.GetCurrentNext(); if (sp != null) { sp.AddLog(0, null, null, msg); } else { _log.Fine(msg); } } if (seq.GetCurrentNextSys() != oldSys) { String msg = seq.GetName() + " Sys " + oldSys + " -> " + seq.GetCurrentNextSys(); if (sp != null) { sp.AddLog(0, null, null, msg); } else { _log.Fine(msg); } } if (seq.Save()) { counter++; } else { _log.Severe("Not updated: " + seq); } } // else if (CLogMgt.isLevel(6)) // log.fine("OK - " + tableName); } // idr.Close(); } catch (Exception e) { //if (idr != null) //{ // idr.Close(); //} _log.Log(Level.SEVERE, sql, e); } _log.Fine("#" + counter); } } // checkTableID