/// <summary>
 /// Create Sequence for given table.
 /// </summary>
 /// <param name="table"></param>
 /// <param name="trxName"></param>
 private void CreateSequence(MTable table, Trx trxName)
 {
     if (!table.IsView())
     {
         if (!MSequence.CreateTableSequence(GetCtx(), table.GetTableName(), trxName))
         {
             //throw new Exception("Can not create Native Sequence for table " + table.GetTableName());
             this.AddLog("Can not create Native Sequence for table : " + table.GetTableName());
         }
         else
         {
             this.AddLog("Create Native Sequence for : " + table.GetTableName());
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// After Save
 /// </summary>
 /// <param name="newRecord">newRecord new</param>
 /// <param name="success">success</param>
 /// <returns>success</returns>
 protected override bool AfterSave(bool newRecord, bool success)
 {
     if (!success)
     {
         return(false);
     }
     //	Sync Table ID
     if (newRecord)
     {
         MSequence.CreateTableSequence(GetCtx(), GetTableName(), Get_TrxName());
     }
     else
     {
         MSequence seq = MSequence.Get(GetCtx(), GetTableName(), Get_TrxName());
         if (seq == null || seq.Get_ID() == 0)
         {
             MSequence.CreateTableSequence(GetCtx(), GetTableName(), Get_TrxName());
         }
         else if (!seq.GetName().Equals(GetTableName()))
         {
             seq.SetName(GetTableName());
             seq.Save();
         }
     }
     // checked if value is changed in Maintain Version
     if (Is_ValueChanged("IsMaintainVersions"))
     {
         if (!newRecord && IsMaintainVersions())
         {
             int ColID = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT AD_Column_ID FROM AD_Column WHERE IsActive = 'Y' AND AD_Table_ID = " + GetAD_Table_ID() + " ORDER BY ColumnName", null, Get_Trx()));
             if (ColID > 0)
             {
                 MColumn        column     = new MColumn(GetCtx(), ColID, Get_Trx());
                 MasterVersions mv         = new MasterVersions();
                 string         versionMsg = mv.CreateVersionInfo(column.GetAD_Column_ID(), column.GetAD_Table_ID(), Get_Trx());
             }
         }
     }
     return(success);
 }       //	afterSave
Exemplo n.º 3
0
 /// <summary>
 /// After Save
 /// </summary>
 /// <param name="newRecord">newRecord new</param>
 /// <param name="success">success</param>
 /// <returns>success</returns>
 protected override bool AfterSave(bool newRecord, bool success)
 {
     //	Sync Table ID
     if (newRecord)
     {
         MSequence.CreateTableSequence(GetCtx(), GetTableName(), Get_TrxName());
     }
     else
     {
         MSequence seq = MSequence.Get(GetCtx(), GetTableName(), Get_TrxName());
         if (seq == null || seq.Get_ID() == 0)
         {
             MSequence.CreateTableSequence(GetCtx(), GetTableName(), Get_TrxName());
         }
         else if (!seq.GetName().Equals(GetTableName()))
         {
             seq.SetName(GetTableName());
             seq.Save();
         }
     }
     return(success);
 }       //	afterSave
        }       //	validate

        /// <summary>
        /// Check existence of Table Sequences.
        /// </summary>
        /// <param name="ctx">context</param>
        /// <param name="sp">server process or null</param>
        private static void CheckTableSequences(Ctx ctx, SvrProcess sp)
        {
            Trx trxName = null;

            if (sp != null)
            {
                trxName = sp.Get_Trx();
            }
            String sql = "SELECT TableName "
                         + "FROM AD_Table t "
                         + "WHERE IsActive='Y' AND IsView='N'"
                         + " AND NOT EXISTS (SELECT * FROM AD_Sequence s "
                         + "WHERE UPPER(s.Name)=UPPER(t.TableName) AND s.IsTableID='Y')";
            IDataReader idr = null;

            try
            {
                //pstmt = DataBase.prepareStatement(sql, trxName);
                idr = DataBase.DB.ExecuteReader(sql, null, trxName);
                while (idr.Read())
                {
                    String tableName = Utility.Util.GetValueOfString(idr[0]);// rs.getString(1);
                    if (MSequence.CreateTableSequence(ctx, tableName, trxName))
                    {
                        if (sp != null)
                        {
                            sp.AddLog(0, null, null, tableName);
                        }
                        else
                        {
                            _log.Fine(tableName);
                        }
                    }
                    else
                    {
                        idr.Close();
                        throw new Exception("Error creating Table Sequence for " + tableName);
                    }
                }
                idr.Close();
            }
            catch (Exception e)
            {
                if (idr != null)
                {
                    idr.Close();
                }
                _log.Log(Level.SEVERE, sql, e);
            }

            //	Sync Table Name case
            //jz replace s with AD_Sequence
            sql = "UPDATE AD_Sequence "
                  + "SET Name = (SELECT TableName FROM AD_Table t "
                  + "WHERE t.IsView='N' AND UPPER(AD_Sequence.Name)=UPPER(t.TableName)) "
                  + "WHERE AD_Sequence.IsTableID='Y'"
                  + " AND EXISTS (SELECT * FROM AD_Table t "
                  + "WHERE t.IsActive='Y' AND t.IsView='N'"
                  + " AND UPPER(AD_Sequence.Name)=UPPER(t.TableName) AND AD_Sequence.Name<>t.TableName)";
            int no = DataBase.DB.ExecuteQuery(sql, null, trxName);// DataBase.executeUpdate(sql, trxName);

            if (no > 0)
            {
                if (sp != null)
                {
                    sp.AddLog(0, null, null, "SyncName #" + no);
                }
                else
                {
                    _log.Fine("Sync #" + no);
                }
            }
            if (no >= 0)
            {
                return;
            }
            /** Find Duplicates          */
            sql = "SELECT TableName, s.Name "
                  + "FROM AD_Table t, AD_Sequence s "
                  + "WHERE t.IsActive='Y' AND t.IsView='N'"
                  + " AND UPPER(s.Name)=UPPER(t.TableName) AND s.Name<>t.TableName";
            //
            try
            {
                //pstmt = DataBase.prepareStatement (sql, null);
                idr = DataBase.DB.ExecuteReader(sql, null, trxName);
                while (idr.Read())
                {
                    String TableName = Utility.Util.GetValueOfString(idr[0]);// rs.getString(1);
                    String SeqName   = Utility.Util.GetValueOfString(idr[1]);
                    sp.AddLog(0, null, null, "ERROR: TableName=" + TableName + " - Sequence=" + SeqName);
                }
                idr.Close();
            }
            catch (Exception e)
            {
                if (idr != null)
                {
                    idr.Close();
                }
                _log.Log(Level.SEVERE, sql, e);
            }
        }       //	checkTableSequences