Exemplo n.º 1
0
 /// <summary> 备份
 /// </summary>
 void UCAcountSet_BackupEvent(object sender, EventArgs e)
 {
     if (dgvAccList.CurrentRow == null)
     {
         MessageBoxEx.Show("请选择记录!");
         return;
     }
     try
     {
         string       accCode = dgvAccList.CurrentRow.Cells["setbook_code"].Value.ToString();
         string       msg     = string.Format("将要备份当前选中帐套{0}({1}),是否继续?", dgvAccList.CurrentRow.Cells["setbook_name"].Value.ToString(), accCode);
         DialogResult result  = MessageBoxEx.Show(msg, "系统提示", MessageBoxButtons.YesNo);
         if (result == DialogResult.Yes)
         {
             string bak_filename = accCode + GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("yyMMddHHmmss") + ".bak";
             string errMsg       = CommonUtility.BackupDb(accCode, bak_filename);
             if (!string.IsNullOrEmpty(errMsg))
             {
                 MessageBoxEx.ShowWarning("系统正在努力尝试,请重新备份!");
                 return;
             }
             MessageBoxEx.ShowInformation("备份成功");
         }
     }
     catch (Exception ex)
     {
         GlobalStaticObj_Server.GlobalLogService.WriteLog("帐套设置", ex);
         MessageBoxEx.ShowWarning("程序异常");
     }
 }
Exemplo n.º 2
0
        /// <summary> 备份
        /// </summary>
        public void BackupAcc()
        {
            string accCode      = dgvAccList.CurrentRow.Cells["setbook_code"].Value.ToString();
            string bak_filename = accCode + GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("yyMMddHHmmss") + ".bak";
            string errMsg       = CommonUtility.BackupDb(accCode, bak_filename);

            if (!string.IsNullOrEmpty(errMsg))
            {
                throw new Exception(errMsg);
            }
        }
Exemplo n.º 3
0
        /// <summary> 定时器(半小时)
        /// </summary>
        private void timerBackupPlan_Tick(object sender, EventArgs e)
        {
            if (GlobalStaticObj_Server.Instance.CurrentDateTime.Hour > 2 && GlobalStaticObj_Server.Instance.CurrentDateTime.Hour < 4)
            {
                bool          isAllBackUp = false;
                List <string> list        = new List <string>();
                #region 记录需要备份的账套
                foreach (string str in GlobalStaticObj_Server.Instance.DicBackupPlan.Keys)
                {
                    string[] intArr   = GlobalStaticObj_Server.Instance.DicBackupPlan[str];
                    DateTime dtStart  = Common.UtcLongToLocalDateTime(Convert.ToInt64(intArr[2]));
                    bool     isBackup = false;
                    if (intArr[3] == "")
                    {
                        isBackup = true;
                    }
                    else
                    {
                        DateTime dtLastBackupTime = Common.UtcLongToLocalDateTime(Convert.ToInt64(intArr[3]));
                        if (Convert.ToInt32(intArr[0]) == (int)DataSources.EnumAutoBackupType.EveryDay)
                        {
                            if ((GlobalStaticObj_Server.Instance.CurrentDateTime - dtLastBackupTime).Days > Convert.ToInt32(intArr[1]))
                            {
                                isBackup = true;
                            }
                        }
                        else if (Convert.ToInt32(intArr[0]) == (int)DataSources.EnumAutoBackupType.EveryWeek)
                        {
                            int weekEnum = (int)GlobalStaticObj_Server.Instance.CurrentDateTime.DayOfWeek;
                            if (weekEnum == 0)
                            {
                                weekEnum = 7;
                            }
                            if (Convert.ToInt32(intArr[1]) == weekEnum)
                            {
                                if (Common.GetWeekOfYear(dtLastBackupTime) != Common.GetWeekOfYear(GlobalStaticObj_Server.Instance.CurrentDateTime))
                                {
                                    isBackup = true;
                                }
                            }
                        }
                        else if (Convert.ToInt32(intArr[0]) == (int)DataSources.EnumAutoBackupType.EveryMonth && GlobalStaticObj_Server.Instance.CurrentDateTime.Day == Convert.ToInt32(intArr[1]))
                        {
                            if (dtLastBackupTime.Date != GlobalStaticObj_Server.Instance.CurrentDateTime.Date)
                            {
                                isBackup = true;
                            }
                        }
                    }
                    if (isBackup)
                    {
                        if (str == "")
                        {
                            DataTable dt = DBHelper.GetTable("获取账套信息", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_setbook", "*", "enable_flag=1", "", "order by setbook_code");
                            foreach (DataRow drAcc in dt.Rows)
                            {
                                string accCode = drAcc["setbook_code"].ToString();
                                if (!list.Contains(accCode))
                                {
                                    list.Add(accCode);
                                }
                            }
                            isAllBackUp = true;
                            break;
                        }
                        else
                        {
                            if (!list.Contains(str))
                            {
                                list.Add(str);
                            }
                        }
                    }
                }
                #endregion

                #region 开始备份
                DateTime dtBakTime = GlobalStaticObj_Server.Instance.CurrentDateTime;
                bool     isSuccess = true;
                foreach (string accCode in list)
                {
                    string bak_filename = accCode + dtBakTime.ToString("yyMMdd") + ".bak";
                    string errMsg       = CommonUtility.BackupDb(accCode, bak_filename);
                    if (!string.IsNullOrEmpty(errMsg))
                    {
                        isSuccess = false;
                    }
                }
                #endregion

                #region
                //如果是备份 所有账套,记录备份记录
                if (isAllBackUp)
                {
                    Dictionary <string, string> dicFields = new Dictionary <string, string>();
                    dicFields.Add("bak_id", Guid.NewGuid().ToString());
                    dicFields.Add("bak_acccode", "---");
                    dicFields.Add("bak_filename", "所有账套");
                    dicFields.Add("is_success", Convert.ToInt32(isSuccess).ToString());
                    dicFields.Add("bak_method", Convert.ToInt32(DataSources.EnumBackupMethod.ManualBackup).ToString());
                    dicFields.Add("bak_time", Common.LocalDateTimeToUtcLong(dtBakTime).ToString());
                    dicFields.Add("bak_by", GlobalStaticObj_Server.Instance.UserID);
                    DBHelper.Submit_AddOrEdit("新建备份记录", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_backup_record", "", "", dicFields);
                }
                #endregion
            }
        }