最近我们系统老大叫用delphi我写一个数据备份软件,主要做平时的数据维护和备份工作。本人没
写过,不知哪位大哥有写过,能传点经验给小弟吗?给点列子看看。。

解决方案 »

  1.   

    如果是桌面数据库就用copyfile就可以了,但要断开所有与数据库的连接
      

  2.   

    别份SQL SERVER 2000  吗?
      如果是的话,
    create procedure up_backupdb(@dbname varchar(30),@bk_file varchar(99))
    as
    begin
       declare @sql varchar(1999)
       select @sql='backup database '+@dbname+' to disk file='+@bk_file
       exec(@sql)
    endcreate procedure up_restoredb(@dbname varchar(30),@bk_file varchar(99))
    as
    begin
       declare @sql varchar(1999)
       select @sql='restore database '+@dbname+' from disk file='+@bk_file
       exec(@sql)
    end
    前面是备份,后面是恢复。
      

  3.   

    解释如下,:恢复
    'restore database databasename from disk='要恢复的地方'+'另外的参数'备份
    backup database databasename to disk='要存的地方'+'另外的参数'
    你可以自己找SQL的帮助,我以前就是那样做的
      

  4.   

    恢复时,必须检测确保没有连接当前要恢复的数据库
    可以用
    select Count(*) from sysprocesses
    where dbid in (select dbid from sysdatabases where name='数据库名称')
      

  5.   

    功能:SQL数据库恢复
    参数:databasename数据库名,filename数据库备份文件名
    ////////////////////////////////////////////////////////
    function sqlrestore(databasename,filename:string):boolean;
    begin
    if (databasename<>'') and (filename<>'') then
    begin
    try
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.CommandTimeout:=120;
    adoquery1.SQL.Add('use master');
    adoquery1.SQL.Add('alter database '+databasename+' set offline WITH ROLLBACK IMMEDIATE');
    adoquery1.SQL.Add('restore database '+databasename+' from disk='''+filename+''''+' with REPLACE ');
    adoquery1.SQL.Add('alter database '+databasename+' set online with rollback immediate');
    adoquery1.ExecSQL;
    result:=true;
    except
    result:=false;
    exit;
    end;
    end;
    end;////////////////////////////////////////////////////////
    功能:SQL数据库备份
    参数:databasename数据库名,savepath数据库备份文件名
    ////////////////////////////////////////////////////////
    function TForm7.sqlback(databasename,savepath:string):boolean;
    begin
    if (databasename<>'')and (savepath<>'') then
    begin
    try
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('backup database '+databasename+ ' to disk='''+savepath+'''');
    adoquery1.ExecSQL;
    result:=true;
    except
    result:=false;
    exit;
    end;
    end;
    end;