SQL SERVER 2000 +delphi7.0数据库备份与恢复单元

Unit BackRestoreSQLDB;
    
   interface

uses
   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以前备份的数据库文件,
implementation

function 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.

posted @ 2008-05-09 23:11  莫忆往西  阅读(194)  评论(0)    收藏  举报