Ejemplo n.º 1
0
        /// <summary>
        /// 刪除資料
        /// </summary>
        /// <param name="arrMain">
        /// 0. ID              NUMBER,        
        /// 1. USERID          VARCHAR2,
        /// 2. OLD_UPDATEDATE  varchar2, --舊值
        /// 3. OLD_UPDATEUID   varchar2  --舊值
        /// </param>
        /// <param name="dtItem"></param>
        /// <param name="RootDBT"></param>
        public void DeleteOilSubsidyRecord(ArrayList arrMain, DbTransaction RootDBT)
        {
            bool IsRootTranscation = false;

            string strID = arrMain[0].ToString();            
            string strUSERID = arrMain[1].ToString();
            string strOLD_UPDATEDATE = arrMain[2].ToString();
            string strOLD_UPDATEUID = arrMain[3].ToString();

            ArrayList ParameterList = new ArrayList();
            try
            {
                VAM28_DBO DBO = new VAM28_DBO(ref USEDB);

                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;

                #region 啟動交易或指定RootTranscation
                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }
                #endregion

                //N_ID              NUMBER,                
                //V_USERID          VARCHAR2,
                //V_OLD_UPDATEDATE  varchar2, --舊值
                //V_OLD_UPDATEUID   varchar2 --舊值

                ParameterList.Clear();
                ParameterList.Add(strID);
                ParameterList.Add(strUSERID);
                ParameterList.Add(strOLD_UPDATEDATE);
                ParameterList.Add(strOLD_UPDATEUID);                
                DBO.DeleteOilSubsidyRecord_M_Item(DBT, ParameterList); //刪除明細
                DBO.DeleteOilSubsidyRecord_Main(DBT, ParameterList);   //刪除主檔              


                if (IsRootTranscation)
                    DBT.Commit();
            }
            catch (Exception ex)
            {
                DBT.Rollback();
                throw ex;
            }
            finally
            {
                #region 判斷是否關閉交易連線
                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }
                #endregion
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 異動資料
        /// </summary>
        /// <param name="arrMain"> 
        /// 0. ID              NUMBER,
        /// 1. VENDOR          VARCHAR2,
        /// 2. ITEM            VARCHAR2,
        /// 3. SUBSIDY_RATE    NUMBER,                               
        /// 4. USERID          VARCHAR2,
        /// 5. OLD_UPDATEDATE  varchar2, --舊值
        /// 6. OLD_UPDATEUID   varchar2  --舊值
        /// </param>
        /// <param name="dtItem"></param>
        /// <param name="RootDBT"></param>
        public void UpdateOilSubsidyRecord(ArrayList arrMain, DataTable dtItem, DbTransaction RootDBT)
        {
            bool IsRootTranscation = false;

            string strID = arrMain[0].ToString();            
            string strVENDOR = arrMain[1].ToString();
            string strITEM = arrMain[2].ToString();
            string strSUBSIDY_RATE = arrMain[3].ToString();
            string strUSERID = arrMain[4].ToString();
            string strOLD_UPDATEDATE = arrMain[5].ToString();
            string strOLD_UPDATEUID = arrMain[6].ToString();
            
            ArrayList ParameterList = new ArrayList();

            try
            {
                VAM28_DBO DBO = new VAM28_DBO(ref USEDB);

                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;

                #region 啟動交易或指定RootTranscation
                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }
                #endregion

                //刪除舊明細資料
                //N_ID              NUMBER,
                //V_USERID          VARCHAR2,
                //V_OLD_UPDATEDATE  varchar2, --舊值
                //V_OLD_UPDATEUID   varchar2 --舊值
                ParameterList.Clear();
                ParameterList.Add(strID);
                ParameterList.Add(strUSERID);
                ParameterList.Add(strOLD_UPDATEDATE);
                ParameterList.Add(strOLD_UPDATEUID);
                DBO.DeleteOilSubsidyRecord_M_Item(DBT, ParameterList);

                //寫入新明細資料
                for (int i = 0; i < dtItem.Rows.Count; i++)
                {
                    //N_ID         NUMBER,
                    //V_VENDOR     VARCHAR2,
                    //V_ITEM       VARCHAR2,
                    //V_STOREGROUP VARCHAR2,                       
                    //V_USERID     VARCHAR2
                    ParameterList.Clear();
                    ParameterList.Add(strID);
                    ParameterList.Add(strVENDOR);
                    ParameterList.Add(strITEM);
                    ParameterList.Add(dtItem.Rows[i]["STOREGROUP"].ToString());
                    ParameterList.Add(strUSERID);
                    DBO.CreateOilSubsidyRecord_Item(DBT, ParameterList);
                }

                //更新主檔資料
                //N_ID              NUMBER,                
                //N_SUBSIDY_RATE    NUMBER,                               
                //V_USERID          VARCHAR2,
                //V_OLD_UPDATEDATE  varchar2, --舊值
                //V_OLD_UPDATEUID   varchar2  --舊值
                ParameterList.Clear();
                ParameterList.Add(strID);
                ParameterList.Add(strSUBSIDY_RATE);
                ParameterList.Add(strUSERID);
                ParameterList.Add(strOLD_UPDATEDATE);
                ParameterList.Add(strOLD_UPDATEUID);
                DBO.UpdateOilSubsidyRecord_Main(DBT, ParameterList);

                if (IsRootTranscation)
                    DBT.Commit();
            }
            catch (Exception ex)
            {
                DBT.Rollback();
                throw ex;
            }
            finally
            {
                #region 判斷是否關閉交易連線
                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }
                #endregion
            }
        }