|
SQL数据库远程备份到本地 |
来源:delphibbs.com 人气:2951 录入时间:2007-11-8 |
下面是Adang 做的一段把SQL SERVER数据库备份到本地的代码:
//TODO:处理数据备份
if CheckBoxDBF.Checked then
begin
try
try
if EditTargeDir.Text<>'' then
begin
AdoQueryBackUp:=TAdoQuery.Create(frmDataBakup);
AdoQueryBackup.Connection:=frmDM.ADOConSQL;//frmDM.ADOConSQL是已经连接到要备份数据库的ADO连接
frmInputBox.LabelPara.Caption:='请输入本机的Administrator密码:';
frmInputBox.EditInput.PasswordChar:='*';
frmInputBox.Caption:='请输入密码';
if frmInputBox.ShowModal=mrok then
AdminPW:=frmInputBox.EditInput.Text;
//备份远程SQL Server到本地
try
Winexec(pchar('net share test='+ExtractFileDir(EditTargeDir.Text)),SW_HIDE);//共享本地保存数据的文件夹,这是必要的
except
on E:Exception do
Application.MessageBox(pchar(E.Message),'Net share ERROR');
end;
try
Winexec(pchar('net use \\'+PublicElement.LocalIP+'\test '+AdminPW+' /user:domain\Administrator'),SW_HIDE);//连接到刚才的共享,LocalIP是取得当前计算机IP的函数
except
on E:Exception do
Application.MessageBox(pchar(E.Message),'Net Use ERROR');
end;
try
AdoQueryBackup.SQL.Clear;
AdoQueryBackup.SQL.Text:='backup database YYFD to disk='+''''+'\\'+PublicElement.LocalIP+'\test\'+ExtractFileName(EditTargeDir.Text)+'''';//执得备份SQL语句
AdoQueryBackup.ExecSQL;
except
on E:Exception do
Application.MessageBox(pchar(E.Message),'Backup ERROR');
end;
//备份结束
end;
except
on E:Exception do
begin
Application.MessageBox(pchar(E.Message),'数据库备份出错') ;
Raise;
end;
end;
finally
begin
AdoQueryBackup.Close;
AdoQueryBackup.Free;
end;
end;
Application.MessageBox('数据库备份已经成功完成!','操作成功');
end
else
if CheckBoxSQL.Checked then
begin
//TODO:将数据备份到指定其他SQL服务器中
Application.MessageBox('程序暂时没有提供备份到其他服务器的功能!','提示');
end;
|
|
|