with Query1 do //备份数据库到文件 begin Close; SQL.Clear; SQL.Text := 'backup database yourdatabasename to disk = :FileName'; Parameters.parambyname('FileName').value := strFileName; Execsql; end;with Query1 do //从以前的备份中恢复数据库; begin Close; SQL.clear; SQL.text := 'restore database yourdatabasename from disk = :FileName'; Parameters.parambyname('FileName').value := strFileName; Execsql; end;
unit BackRestoreSQLDB; {描述:SQL SERVER 2000 数据库备份与恢复单元 ,本单元函数在SQL SERVER 2000 +Delphi7.0编译通过 } interfaceuses adodb,db; function repl_substr(sub_old, sub_new, s: string): string; //把sub_old换成sub_new,后面有用。 function BackupSQLDataBase(connstr_sql,DatabaseName,Backup_FileName:string):Boolean;//数据库备份函数 //SQL数据数据库备份,connstr_sql是ADO控件的connectionstring,DatabaseName是数据库名称, //Backup_FileName要备份到的目 标文件 function RestoreSQLDataBase(connstr_sql,DatabaseName,Restore_FileName:string):Boolean;//数据库恢复函数 //Restore_FileName以前备份的数据库文件, implementationfunction repl_substr(sub_old, sub_new, s: string): string; var i: integer; begin repeat i := pos(sub_old, s); if i > 0 then begin delete(s, i, Length(sub_old)); insert(sub_new, s, i); end; until i < 1; Result := s; end; function BackupSQLDataBase(connstr_sql,DatabaseName,Backup_FileName:string):Boolean; var //备份SQL数据库SQL数据数据库备份,connstr_sql是ADO控件的connectionstring,DatabaseName是数据库名称, //Backup_FileName要备份到的目标文件 aADOQuery:TADOQuery; begin try aADOQuery:=TADOQuery.Create(nil); aADOQuery.Close; aADOQuery.ConnectionString:=connstr_sql; aADOQuery.SQL.Clear; aADOQuery.SQL.Add('backup database '+DatabaseName+' to disk = ' + '''' + Backup_FileName + ''' with format'); Try aADOQuery.ExecSQL; Result:=true; Except Result:=false; exit; end; finally aADOQuery.Free; end; end; function RestoreSQLDataBase(connstr_sql,DatabaseName,Restore_FileName:string):Boolean; var//数据库恢复函数,estore_FileName以前备份的数据库文件 aADOQuery:TADOQuery; begin try aADOQuery:=TADOQuery.Create(nil); aADOQuery.Close;//恢复数据库不能打开数据库,要打开系统数据库master,把连接字符串如adoconnetion的connectionstring中的数据库名称换成"master"数据库 aADOQuery.ConnectionString:=repl_substr(DatabaseName,'master',connstr_sql); aADOQuery.SQL.Clear; aADOQuery.SQL.Add('RESTORE DATABASE '+DatabaseName+' from disk = ' + '''' + Restore_FileName + ''''); Try aADOQuery.ExecSQL; Result:=true; Except Result:=false; exit; end; finally aADOQuery.Free; end; end; end.
begin
Close;
SQL.Clear;
SQL.Text := 'backup database yourdatabasename to disk = :FileName';
Parameters.parambyname('FileName').value := strFileName;
Execsql;
end;with Query1 do //从以前的备份中恢复数据库;
begin
Close;
SQL.clear;
SQL.text := 'restore database yourdatabasename from disk = :FileName';
Parameters.parambyname('FileName').value := strFileName;
Execsql;
end;
{描述:SQL SERVER 2000 数据库备份与恢复单元 ,本单元函数在SQL SERVER 2000 +Delphi7.0编译通过
}
interfaceuses
adodb,db;
function repl_substr(sub_old, sub_new, s: string): string; //把sub_old换成sub_new,后面有用。
function BackupSQLDataBase(connstr_sql,DatabaseName,Backup_FileName:string):Boolean;//数据库备份函数
//SQL数据数据库备份,connstr_sql是ADO控件的connectionstring,DatabaseName是数据库名称,
//Backup_FileName要备份到的目 标文件
function RestoreSQLDataBase(connstr_sql,DatabaseName,Restore_FileName:string):Boolean;//数据库恢复函数
//Restore_FileName以前备份的数据库文件,
implementationfunction repl_substr(sub_old, sub_new, s: string): string;
var
i: integer;
begin
repeat
i := pos(sub_old, s);
if i > 0 then
begin
delete(s, i, Length(sub_old));
insert(sub_new, s, i);
end;
until i < 1;
Result := s;
end;
function BackupSQLDataBase(connstr_sql,DatabaseName,Backup_FileName:string):Boolean;
var
//备份SQL数据库SQL数据数据库备份,connstr_sql是ADO控件的connectionstring,DatabaseName是数据库名称,
//Backup_FileName要备份到的目标文件
aADOQuery:TADOQuery;
begin
try
aADOQuery:=TADOQuery.Create(nil);
aADOQuery.Close;
aADOQuery.ConnectionString:=connstr_sql;
aADOQuery.SQL.Clear;
aADOQuery.SQL.Add('backup database '+DatabaseName+' to disk = ' + '''' + Backup_FileName + ''' with format');
Try
aADOQuery.ExecSQL;
Result:=true;
Except
Result:=false;
exit;
end;
finally
aADOQuery.Free;
end;
end;
function RestoreSQLDataBase(connstr_sql,DatabaseName,Restore_FileName:string):Boolean;
var//数据库恢复函数,estore_FileName以前备份的数据库文件
aADOQuery:TADOQuery;
begin
try
aADOQuery:=TADOQuery.Create(nil);
aADOQuery.Close;//恢复数据库不能打开数据库,要打开系统数据库master,把连接字符串如adoconnetion的connectionstring中的数据库名称换成"master"数据库
aADOQuery.ConnectionString:=repl_substr(DatabaseName,'master',connstr_sql);
aADOQuery.SQL.Clear;
aADOQuery.SQL.Add('RESTORE DATABASE '+DatabaseName+' from disk = ' + '''' + Restore_FileName + '''');
Try
aADOQuery.ExecSQL;
Result:=true;
Except
Result:=false;
exit;
end;
finally
aADOQuery.Free;
end;
end;
end.