⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backuptask.cpp

📁 我写的SQL Server网络备份工具。(服务器端用VC开发
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <DateUtils.hpp>
#include <assert.h>

#pragma hdrstop

#include "BackupTask.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
char *TXTRunTime = "时执行备份计划";
char *TXTDay[7] = {"星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" , "星期日"};
void BackupTask::SetDatabase(const AnsiString & strDatabase)
{
    m_strDatabase = strDatabase;
}

void BackupTask::SetCycleType(int nType)
{
    m_nCycleType = nType;
}

void BackupTask::SetCycleCount(int nCount)
{
    m_nCycleCount = nCount;
}

void BackupTask::SetDayCount(int nCount)
{
    m_nDayCount = nCount;
}

int BackupTask::GetCycleCount()
{
    return m_nCycleCount;
}

int BackupTask::GetCycleType()
{
    return m_nCycleType;
}

int BackupTask::GetDayCount()
{
    return m_nDayCount;
}

const AnsiString & BackupTask::GetDatabase()
{
    return m_strDatabase;
}

void BackupTask::SetActiveDate(const TDateTime &dtDate)
{
    m_dtActiveDate = DateOf(dtDate);
}

const TDateTime & BackupTask::GetActiveDate()
{
    return m_dtActiveDate;
}

void BackupTask::SetActiveTime(const TDateTime & dtDate)
{
    m_dtActiveTime = TimeOf(dtDate);
}

const TDateTime & BackupTask::GetActiveTime()
{
    return m_dtActiveTime;
}

AnsiString BackupTask::GetCycleString()
{
     AnsiString strTemp;
     switch (m_nCycleType)
     {
         case 1:
             #ifdef _DEBUG
                assert( m_nCycleCount > 0 && m_nCycleCount < 8);
             #endif
             strTemp = "每" + IntToStr(m_nCycleCount) + "天的" + m_dtActiveTime.TimeString() + TXTRunTime;
         break;
         case 2:
             #ifdef _DEBUG
                assert( m_nCycleCount > 0 && m_nCycleCount < 6);
                assert( m_nDayCount > 0 && m_nDayCount < 8);
             #endif
             strTemp = "每" + IntToStr(m_nCycleCount) + "周的" + AnsiString(TXTDay[m_nDayCount - 1]) + m_dtActiveTime.TimeString() + TXTRunTime ;
         break;
         case 3:
             #ifdef _DEBUG
                assert( m_nCycleCount > 0 && m_nCycleCount < 12);
                assert( m_nDayCount > 0 && m_nDayCount < 29);
             #endif  
             strTemp = "每" + IntToStr(m_nCycleCount) + "月的第" + IntToStr(m_nDayCount) + "天的" + m_dtActiveTime.TimeString() + TXTRunTime;
         break;
         default:
         #ifdef _DEBUG
                assert(FALSE);
         #endif
    }
    return strTemp;
}

TDateTime BackupTask::GetNextDate()
{
     TDateTime dtNextDate;

     switch (m_nCycleType)
     {
         case 1:
             #ifdef _DEBUG
                assert( m_nCycleCount > 0 && m_nCycleCount < 8);
             #endif
            dtNextDate = m_dtActiveDate + m_nCycleCount;
            return dtNextDate;
         case 2:
             #ifdef _DEBUG
                assert( m_nCycleCount > 0 && m_nCycleCount < 6);
                assert( m_nDayCount > 0 && m_nDayCount < 8);
             #endif
             dtNextDate = m_dtActiveDate - m_dtActiveDate.DayOfWeek() + m_nCycleCount * 7 + m_nDayCount + 1;
             return dtNextDate;
 
         case 3:
             unsigned short nYear, nMonth, nDay;
             m_dtActiveDate.DecodeDate(&nYear, &nMonth, &nDay);
             nMonth += m_nCycleCount;
             for(;nMonth > 12 ; nMonth -= 12)
             {
                    nYear++;
             }
             return TDateTime(nYear, nMonth, m_nDayCount);

         default:
         #ifdef _DEBUG
                assert(FALSE);
         #endif
    }
}

void BackupTask::SetID(int nID)
{
     m_nID = nID;
}

int BackupTask::GetID()
{
     return m_nID;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -