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

📄 untmain.pas

📁 销售软件
💻 PAS
字号:
unit untMain;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  JCAMDialogForm,
  RzButton,
  ExtCtrls,
  StdCtrls,
  StrUtils,
  RzRadChk,
  Registry,
  JCAMConsts,
  JCAMUtils;

type
  TfrmMain = class( TfrmJCAMDialogForm )
    rbImportDBFiles: TRzRadioButton;
    rbExportDBFiles: TRzRadioButton;
    procedure FormCreate( Sender: TObject );
    procedure btnCancelClick( Sender: TObject );
    procedure btnOKClick( Sender: TObject );
  private
    m_sDBFolderPath: string;
    m_sMSSQLDBFolderPath: string;
    procedure pImportDBFiles;
    procedure pExportDBFiles;
    procedure pCopyDBFiles( sSrcPath, sDestPath: string );
    procedure pStartMSSQLService;
    procedure pStopMSSQLService;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

{ TfrmMain }

procedure TfrmMain.btnCancelClick( Sender: TObject );
begin
  inherited;

  Application.Terminate;
end;

procedure TfrmMain.btnOKClick( Sender: TObject );
begin
  inherited;

  if rbImportDBFiles.Checked then
    pImportDBFiles
  else
    pExportDBFiles;

  MessageBox( Self.Handle, PChar( '成功完成。' ), PChar( STR_APPTITLE ),
    MB_ICONINFORMATION );
end;

procedure TfrmMain.FormCreate( Sender: TObject );
const
  STR_REG_MSSQLPATH = 'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\Parameters';
  STR_REG_MSSQLEXE = 'SQLArg0';
var
  reg: TRegIniFile;
begin
  inherited;

  // TODO: 获取备份数据库到的路径
  m_sDBFolderPath := ExtractFilePath( ParamStr( 0 ) ) +
    STR_BACKUPDBFILESFOLDERPATH + '\';

  // TODO: 获取MSSQL数据库路径
  reg := TRegIniFile.Create;
  with reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    m_sMSSQLDBFolderPath := ReadString( STR_REG_MSSQLPATH, STR_REG_MSSQLEXE,
      EmptyStr );
    m_sMSSQLDBFolderPath := MidBStr( m_sMSSQLDBFolderPath, 3, Length(
      m_sMSSQLDBFolderPath ) - 12 );
  end;
  FreeAndNil( reg );
end;

procedure TfrmMain.pCopyDBFiles( sSrcPath, sDestPath: string );
const
  STR_DATAFILE = 'JCAMIS_Data.MDF';
  STR_LOGFILE = 'JCAMIS_Log.LDF';
begin
  { 复制数据库文件 }

  CopyFile( PChar( sSrcPath + STR_DATAFILE ), PChar( sDestPath + STR_DATAFILE ),
    False );
  CopyFile( PChar( sSrcPath + STR_LOGFILE ), PChar( sDestPath + STR_LOGFILE ),
    False );
end;

procedure TfrmMain.pExportDBFiles;
begin
  { 备份数据库文件 }

  pStopMSSQLService;
  pCopyDBFiles( m_sMSSQLDBFolderPath, m_sDBFolderPath );
  pStartMSSQLService;
end;

procedure TfrmMain.pImportDBFiles;
begin
  { 还原数据库文件 }

  pStopMSSQLService;
  pCopyDBFiles( m_sDBFolderPath, m_sMSSQLDBFolderPath );
  pStartMSSQLService;
end;

procedure TfrmMain.pStartMSSQLService;
begin
  { 启动MSSQL服务 }

  WinExec( PChar( 'net start MSSQLSERVER' ), 0 );
end;

procedure TfrmMain.pStopMSSQLService;
begin
  { 停止MSSQL服务 }

  WinExec( PChar( 'net stop MSSQLSERVER' ), 0 );
end;

end.

⌨️ 快捷键说明

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