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

📄 ttaskform.cpp

📁 我写的SQL Server网络备份工具。(服务器端用VC开发
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <DateUtils.hpp>
#pragma hdrstop

#include "TTaskForm.h"
#include "ClientConnect.h"
#include "TMainForm.h"
#include "TRunForm.h"
#include "BackupTask.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"

//---------------------------------------------------------------------------
__fastcall TTaskForm::TTaskForm(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void TTaskForm::ChangeBox(int nPage)
{
    switch (nPage)
    {
      case 1:
          MonthBox->Visible = TRUE;

          DayBox->Visible   = FALSE;
          WeekBox->Visible  = FALSE;
      break;
      case 2:
          WeekBox->Visible  = TRUE;

          MonthBox->Visible = FALSE;
          DayBox->Visible   = FALSE;

      break;
      case 3:
          DayBox->Visible   = TRUE;

          MonthBox->Visible = FALSE;
          WeekBox->Visible  = FALSE;
      break;
    }

}
void __fastcall TTaskForm::OnCycleClick(TObject *Sender)
{
    ChangeBox(((TRadioButton *)Sender)->Tag);
}
//---------------------------------------------------------------------------

void __fastcall TTaskForm::FormCreate(TObject *Sender)
{
    rbMonth->Checked  = TRUE;
    rbMonday->Checked = TRUE;
    Sender = rbMonday;
    ChangeBox(1);
    ClientConnect conn;
    AnsiString strIP;

    ActiveTime->DateTime = Now();
    BeginDate->DateTime  = Now();
    
    strIP.sprintf(g_IPFormat , g_nIP1 , g_nIP2 , g_nIP3 , g_nIP4 );
    ClientConnect ServerConnect;
    if(g_nIP1 == 0)
    {
        MessageBox(Handle , "服务器IP地址没有指定" , "提示" , MB_OK);
        btnOk->Enabled = FALSE;
        return ;
    }
    if(!ServerConnect.Connect(strIP.c_str()))
    {
         MessageBox(Handle , "不能连接服务器" , "提示" , MB_OK);
         btnOk->Enabled = FALSE;
         return ;
    }
    StringArray arrDatabase;
    if(ServerConnect.GetDatabase(arrDatabase))
    {
        StringArray::iterator i;

        for(i = arrDatabase.begin() ; i != arrDatabase.end() ; i++)
        {
             DatabaseList->Items->Add((*i).c_str());  
        }
    }
    else
    {
        MessageBox(Handle , ServerConnect.GetError().c_str() , "提示" , MB_OK);
    }
}
//---------------------------------------------------------------------------

void __fastcall TTaskForm::btnOkClick(TObject *Sender)
{
    if(DatabaseList->ItemIndex < 0)
    {
        MessageBox(Handle , "请选择要备份的数据库" , "提示" , MB_OK);
        ModalResult = mrNone;
        return;
    }

    BackupTask task;
    task.SetDatabase(GetDatabase());
    task.SetCycleType(GetCycleType());
    task.SetCycleCount(GetCycleCount());
    task.SetDayCount(GetDayCount());
    task.SetActiveDate(GetBeginDate());
    task.SetActiveTime(GetBackupTime());
    if(task.GetNextDate() < Now())
    {
        MessageBox(Handle , "起始时间加上一个备份周期不能小于当前时间" , "提示" , MB_OK);
        ModalResult = mrNone;
        BeginDate->SetFocus();
        return;
    }
}

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

void __fastcall TTaskForm::OnDayClick(TObject *Sender)
{
     m_pSelectDay =(TRadioButton *) Sender;
}
//---------------------------------------------------------------------------

void __fastcall TTaskForm::DatabaseListClick(TObject *Sender)
{
     txtDatabase->Caption = DatabaseList->Items->Strings[DatabaseList->ItemIndex];
}

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

int TTaskForm::GetCycleType()
{
    if(rbDay->Checked)
    {
        return 1;
    }
    else
    if(rbWeek->Checked)
    {
       return 2;
    }
    else
    if(rbMonth->Checked)
    {
       return 3;
    }
}

int TTaskForm::GetCycleCount()
{
    if(rbDay->Checked)
    {
        return txtDayNum->Text.ToInt();
    }
    else
    if(rbWeek->Checked)
    {
       return txtWeekNum->Text.ToInt();
    }
    else
    if(rbMonth->Checked)
    {
       return txtMonthNum->Text.ToInt();
    }
}

int TTaskForm::GetDayCount()
{
    if(rbDay->Checked)
    {
        return 0;
    }
    else
    if(rbWeek->Checked)
    {
        return m_pSelectDay->Tag;
    }
    else
    if(rbMonth->Checked)
    {
       return txtMonthDayNum->Text.ToInt();
    }
}

//---------------------------------------------------------------------------
AnsiString TTaskForm::GetDatabase()
{
    return DatabaseList->Items->Strings[DatabaseList->ItemIndex];
}

void TTaskForm::SetCycle(int nType , int nCycleCount , int nDayCount)
{
    switch(nType)
    {
      case 1:
         if(nCycleCount > 0 && nCycleCount < 8)
         {
             txtDayNum->Text = IntToStr(nCycleCount);
             rbDay->Checked  = TRUE;
         }
      break;
      case 2:
         if(nCycleCount > 0 && nCycleCount < 6)
         {
            switch (nDayCount)
            {
              case 1:
                  rbMonday->Checked = TRUE;
              break;
              case 2:
                  rbTuesday->Checked = TRUE;
              break;
              case 3:
                  rbWednesday->Checked = TRUE;
              break;
              case 4:
                  rbThursday->Checked = TRUE;
              break;
              case 5:
                  rbFriday->Checked  = TRUE;
              break;
              case 6:
                  rbSaturday->Checked = TRUE;
              break;
              case 7:
                  rbSunday->Checked = TRUE;
              break;
              default:
                  return;
            }
            txtWeekNum->Text = IntToStr(nCycleCount);
            rbWeek->Checked = TRUE;
         }
      break;
      case 3:
          if(nCycleCount > 0 && nCycleCount < 12)
          {
             if(nDayCount > 0 && nDayCount < 29)
             {
                 txtMonthDayNum->Text = IntToStr(nDayCount);
                 txtMonthNum->Text    = IntToStr(nCycleCount);
             }
          }

      break;
    }
}

TDateTime TTaskForm::GetBackupTime()
{
    return TimeOf(ActiveTime->DateTime);
}

void TTaskForm::SetBackupTime(TDateTime &value)
{
    ActiveTime->DateTime = TimeOf(value);
}

void TTaskForm::SetDatabase(AnsiString & strDatabase)
{
    int i;
    for(i = 0 ; i < DatabaseList->Items->Count ; i++)
    {
        if(DatabaseList->Items->Strings[i] == strDatabase)
        {
            DatabaseList->ItemIndex = i;
            txtDatabase->Caption = strDatabase;
        }
    }
}

TDateTime TTaskForm::GetBeginDate()
{
    return DateOf(BeginDate->DateTime);
}

void TTaskForm::SetBeginDate(TDateTime & datBegin)
{
   BeginDate->DateTime = DateOf(datBegin);
}

⌨️ 快捷键说明

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