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.

转载于:https://www.cnblogs.com/aquar/archive/2008/05/09/3451551.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值