📄 main.pas
字号:
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('if exists(select 1 from sysdevices where name=''ENWEN'') exec sp_dropdevice ''ENWEN''');
SQL.Add('EXEC sp_addumpdevice ''disk'', ''ENWEN'', '''+tb_bak_path.Text+'''');
SQL.Add('BACKUP DATABASE '+cb_db.Text+' TO ENWEN');
try
ExecSQL;
Close;
ShowMessage('操作编号:1100'#13#10#13#10'备份成功,可进行其它操作');
inlog('备份数据库'#13#10+SQL.Text+'操作成功');
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'备份失败,请检查网络情况');
inlog('备份数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.tb_bak_pathButtonClick(Sender: TObject);
begin
SaveDialog1.FileName := UpperCase(cb_db.Text)+FormatDateTime('yymmddhhmmss',now)+'.BAK';
if SaveDialog1.Execute then tb_bak_path.Text := SaveDialog1.FileName;
end;
procedure TFMAIN.cb_dbKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (cb_db.Text<>'') then tb_bak_path.SetFocus;
end;
procedure TFMAIN.tb_bak_pathKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if tb_bak_path.Text<>'' then Button3Click(Sender) else tb_bak_pathButtonClick(Sender);
end;
end;
procedure TFMAIN.tb_bak_path2ButtonClick(Sender: TObject);
begin
if OpenDialog1.Execute then tb_bak_path2.Text := OpenDialog1.FileName;
end;
procedure TFMAIN.cb_db2KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (cb_db2.Text<>'') then tb_bak_path2.SetFocus;
end;
procedure TFMAIN.tb_bak_path2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if tb_bak_path2.Text<>'' then Button5Click(Sender) else tb_bak_path2ButtonClick(Sender);
end;
end;
procedure TFMAIN.Button5Click(Sender: TObject);
begin
with q do
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('if exists(select 1 from sysdevices where name=''ENWEN'') exec sp_dropdevice ''ENWEN''');
SQL.Add('restore database '+cb_db2.Text+' from disk='''+tb_bak_path2.Text+''' with replace');
try
ExecSQL;
Close;
ShowMessage('操作编号:1101'#13#10#13#10'还原成功,可进行其它操作');
inlog('还原数据库'#13#10+SQL.Text+'操作成功');
ini;
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'还原失败,请检查网络情况');
inlog('还原数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.cb_db3KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (cb_db3.Text<>'') then Button7Click(Sender);
end;
procedure TFMAIN.Button7Click(Sender: TObject);
begin
if cb_db3.Text='' then exit;
with q do
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('EXEC sp_detach_db '''+cb_db3.Text+'''');
try
ExecSQL;
Close;
ShowMessage('操作编号:1102'#13#10#13#10'分离成功,可进行其它操作');
inlog('分离数据库'#13#10+SQL.Text+'操作成功');
ini;
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'分离失败,请检查网络情况');
inlog('分离数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.Button9Click(Sender: TObject);
begin
if cb_db4.Text='' then exit;
if tb_m_path.Text='' then exit;
if tb_l_path.Text='' then exit;
with q do
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('EXEC sp_attach_db '''+cb_db4.Text+''','''+tb_m_path.Text+''','''+tb_l_path.Text+'''');
try
ExecSQL;
Close;
ShowMessage('操作编号:1103'#13#10#13#10'附加成功,可进行其它操作');
inlog('附加数据库'#13#10+SQL.Text+'操作成功');
ini;
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'附加失败,请检查网络情况');
inlog('附加数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.tb_m_pathButtonClick(Sender: TObject);
begin
if OpenDialog1.Execute then tb_m_path.Text := OpenDialog1.FileName;
end;
procedure TFMAIN.cb_db4KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (cb_db4.Text<>'') then tb_m_path.SetFocus;
end;
procedure TFMAIN.tb_m_pathKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if tb_m_path.Text<>'' then tb_l_path.SetFocus else tb_bak_path2ButtonClick(Sender);
end;
end;
procedure TFMAIN.tb_l_pathButtonClick(Sender: TObject);
begin
if OpenDialog1.Execute then tb_l_path.Text := OpenDialog1.FileName;
end;
procedure TFMAIN.tb_l_pathKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if tb_l_path.Text<>'' then Button9Click(Sender) else tb_bak_path2ButtonClick(Sender);
end;
end;
procedure TFMAIN.Button11Click(Sender: TObject);
begin
if cb_db5.Text='' then exit;
with q do
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('drop database '+cb_db5.Text);
try
ExecSQL;
Close;
ShowMessage('操作编号:1104'#13#10#13#10'删除成功,可进行其它操作');
inlog('删除数据库'#13#10+SQL.Text+'操作成功');
ini;
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'删除失败,请检查网络情况');
inlog('删除数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.cb_db5KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (cb_db5.Text<>'') then Button11Click(Sender);
end;
procedure TFMAIN.cb_db6KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (cb_db6.Text<>'') then Button13Click(Sender);
end;
procedure TFMAIN.Button13Click(Sender: TObject);
begin
if cb_db6.Text='' then exit;
with q do
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('dump transaction '+cb_db6.Text+' with no_log');
SQL.Add('backup log '+cb_db6.Text+' with no_log');
SQL.Add('dbcc shrinkdatabase ('+cb_db6.Text+')');
try
ExecSQL;
Close;
ShowMessage('操作编号:1110'#13#10#13#10'压缩成功,可进行其它操作');
inlog('压缩数据库'#13#10+SQL.Text+'操作成功');
ini;
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'压缩失败,请检查网络情况');
inlog('压缩数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.tb_memoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_f10 then
begin
if SaveDialog2.Execute then
tb_memo.Lines.SaveToFile(SaveDialog2.FileName);
end;
end;
procedure TFMAIN.Button15Click(Sender: TObject);
begin
if (tb_db.Text='') or (tb_m_file.Text='') or (tb_m_size.Text='') or (tb_m_group.Text='') or (tb_l_file.Text='') or (tb_l_size.Text='') or (tb_l_group.Text='') then exit;
with q do
begin
close;
SQl.Clear;
SQL.Add('use master');
SQL.Add('create database '+tb_db.Text);
SQL.Add('on');
SQL.Add('( name = '+tb_db.Text+'_dat,');
SQL.Add('filename='''+tb_m_file.Text+''',');
SQL.Add('size='+tb_m_size.Text+',');
if (tb_l_max.Text<>'') or (copy(tb_m_max.Text,0,1)='0') then
begin
SQL.Add('max = '+tb_m_max.Text+',');
SQL.Add('filegrowth='+tb_m_group.Text+')');
end
else SQL.Add('filegrowth='+tb_m_group.Text+')');
SQL.Add('log on');
SQL.Add('( name = '+tb_db.Text+'_log,');
SQL.Add('filename='''+tb_l_file.Text+''',');
SQL.Add('size='+tb_l_size.Text+',');
if (tb_l_max.Text<>'') or (copy(tb_l_max.Text,0,1)='0') then
begin
SQL.Add('max = '+tb_l_max.Text+',');
SQL.Add('filegrowth='+tb_l_group.Text+')');
end
else SQL.Add('filegrowth='+tb_l_group.Text+')');
try
ExecSQL;
Close;
ShowMessage('操作编号:1105'#13#10#13#10'创建成功,可进行其它操作');
inlog('创建数据库'#13#10+SQL.Text+'操作成功');
ini;
except
Close;
ShowMessage('错误编号:1001'#13#10#13#10'创建失败,请检查网络情况');
inlog('创建数据库'#13#10+SQL.Text+'操作失败');
end;
end;
end;
procedure TFMAIN.tb_dbKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_db.Text<>'') then tb_m_file.SetFocus;
end;
procedure TFMAIN.tb_m_fileKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_m_file.Text<>'') then tb_m_size.SetFocus;
end;
procedure TFMAIN.tb_m_sizeKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_m_size.Text<>'') then tb_m_group.SetFocus;
end;
procedure TFMAIN.tb_m_groupKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_m_group.Text<>'') then tb_m_max.SetFocus;
end;
procedure TFMAIN.tb_m_maxKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tb_l_file.SetFocus;
end;
procedure TFMAIN.tb_l_fileKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_l_file.Text<>'') then tb_l_size.SetFocus;
end;
procedure TFMAIN.tb_l_sizeKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_l_size.Text<>'') then tb_l_group.SetFocus;
end;
procedure TFMAIN.tb_l_groupKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (tb_l_group.Text<>'') then tb_l_max.SetFocus;
end;
procedure TFMAIN.tb_l_maxKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Button15Click(Sender);
end;
procedure TFMAIN.tb_m_fileButtonClick(Sender: TObject);
begin
if SaveDialog3.Execute then tb_m_file.Text := SaveDialog3.FileName;
end;
procedure TFMAIN.tb_l_fileButtonClick(Sender: TObject);
begin
if SaveDialog4.Execute then tb_l_file.Text := SaveDialog4.FileName;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -