📄 untmain.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 + -