var
F_bakdatabase: TF_bakdatabase;
bh:string;
bfsb:string;
implementation
uses Unit3;
{$R *.dfm}
function TF_bakdatabase.dbpath:string;
begin
result:=extractfilepath(application.ExeName)+'\db.txt';
end;
procedure TF_bakdatabase.FormShow(Sender: TObject);
begin
listbox1.Items.LoadFromFile(dbpath());
listbox1.ItemIndex:=0;
with Q_database_name do
begin
close;
sql.Clear ;
sql.Add('select name from master.dbo.sysdatabases'); //从master.dbo.sysdatabases系统库中获得数据库名称列表
open;
end;
cmb_DataBase_name.Items.Clear;
while not Q_database_name.Eof do //添加数据库列表进列表框
begin
cmb_DataBase_name.Items.Add(Q_database_name.fieldbyname('name').AsString );
Q_database_name.Next ;
end;
cmb_DataBase_name.ItemIndex:=0;
if cmb_DataBase_name.Items.Count<=0 then
exit;
cmb_database_name.ItemIndex:=cmb_database_name.Items.Count-1 ;
q_database_name.Close;
end;
procedure TF_bakdatabase.b_addpathClick(Sender: TObject);
begin
if s_database.Execute then
listbox1.Items.Append(s_database.FileName);
listbox1.ItemIndex:=listbox1.Items.Count-1 ;
listbox1.Items.SaveToFile (dbpath());
end;
procedure TF_bakdatabase.b_deleteClick(Sender: TObject);
begin
if application.MessageBox('你确定要删除该备份吗?','请注意...',mb_iconwarning+mb_yesno)=idyes then
begin
if fileexists(trim(listbox1.Items.Strings[listbox1.Itemindex])) then
deletefile(trim(listbox1.Items.Strings[listbox1.Itemindex]));
listbox1.Items.Delete(listbox1.ItemIndex);
listbox1.Items.SaveToFile (dbpath());
listbox1.Itemindex:=0;
end;
end;
procedure TF_bakdatabase.SpeedButton4Click(Sender: TObject);
var
back_sql_Str:string;
begin
g_jd.Position :=0;
if (trim(cmb_database_name.Text)='master') and (r_bfxx.ItemIndex=1) then
begin
application.MessageBox('系统库Master不能进行增量备份,只能进行完全备份!','曲靖师范学院机房管理系统:',mb_iconerror+mb_ok);
exit;
end;
back_sql_str:='backup database '+trim(cmb_database_name.Text)+' to disk='+''''+trim(listbox1.Items.Strings[listbox1.Itemindex])+''''+' with stats=10';
statusbar1.Panels[0].Text :='正在进行备份,请稍后...';
if listbox1.Items.Count=0 then
begin
application.MessageBox('你还没有进行备份路径的选择!','机房系列系统:',mb_iconwarning+mb_ok);
exit;
end;
screen.Cursor:=crHourGlass;
if r_bfxx.ItemIndex=1 then
begin
back_sql_str:='backup database '+trim(cmb_database_name.Text)+' to disk='+''''+trim(listbox1.Items.Strings[listbox1.Itemindex])+''''+' with DIFFERENTIAL,stats=10';//增量备份
if r_cx.ItemIndex =1 then
back_sql_str:='backup database '+trim(cmb_database_name.Text)+' to disk='+''''+trim(listbox1.Items.Strings[listbox1.Itemindex])+''''+' with init,DIFFERENTIAL,stats=10';//增量备份
end
else
if r_cx.ItemIndex =1 then
back_sql_str:='backup database '+trim(cmb_database_name.Text)+' to disk='+''''+trim(listbox1.Items.Strings[listbox1.Itemindex])+''''+' with init,format,DIFFERENTIAL,stats=10';//增量备份
timer1.Enabled :=true;
with q_backdatabase do
begin
close;
sql.Clear ;
sql.Add(back_sql_str);
ExecSQL;
timer1.Enabled :=false;
g_jd.Position :=100;
screen.Cursor:=crarrow;
statusbar1.Panels[0].Text :='备份完成';
close;
end;
end;
procedure TF_bakdatabase.Timer1Timer(Sender: TObject);
begin
g_jd.Position :=g_jd.Position +13;
end;
procedure TF_bakdatabase.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
g_jd.Position :=0;
statusbar1.Panels[0].Text:='';
end;
procedure TF_bakdatabase.SpeedButton5Click(Sender: TObject);
begin
close;
end;
procedure TF_bakdatabase.FormCreate(Sender: TObject);
begin
ado_connect_restore.ConnectionString:=dm1.ADOConnection1.ConnectionString;
ado_connect_restore.Connected:=true;
end;