怎么用DELPHI进行数据库的备份..目标数据库名自己能指定.最好还能给数库设置密码

解决方案 »

  1.   

    备份代码:
    begin 
        self.Caption := '正在备份数据....';
          a1.Active:=true;//a1是Tanimate控件用来显示传递的过程
          sk.cback.CommandText:='backup database yy to disk='''+edit_path.Text
          +'''';//备份数据库命令语句,yy是sql2000你的库名
      try
        sk.cback.Execute; // 执行备份
        showmessage('      备份成功!');
        a1.Active := false;
      except
        showmessage('      备份失败!');
        a1.Active := false;
      end;
      self.Caption := '数据备份和恢复';
    end;恢复数据:
    var 
      DataPath: string;
    begin 
    self.Caption := '正在恢复数据....';
      sk.adoconnect.Close;//sk是我的模板,adoconnect是ADOConnection1控件
      sk.adoconnect.Connected:=false;
      OpenDialog1.Filter := '备份文件 (*.back)|*.back|所有文件 (*.*)|*.*';
      //设置备份文件后缀,记得添加一个opendialog1控件
      OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName) + '\backupdata';
      //设置备份路径
      if OpenDialog1.Execute then
        DataPath := OpenDialog1.FileName;
      if DataPath <> '' then
      begin
        if
          application.MessageBox('此操作将使上次备份以来的所有数据丢失,是否继续?',
          '恢复数据', MB_OKCANCEL) = idOK then
        begin
          a1.Active := true;
          sk.cback.CommandText:= 'restore database yy from disk=''' + DataPath
            + '''' + ' with replace'; //恢复数据命令语句,主要是这一句,记的yy是你的库
         //名
          try
            try
              sk.cback.Execute; //执行恢复过程
              showmessage('    恢复成功!');
            except
              showmessage('数据库正在被使用!请确定已关闭其它使用该数据库程序!');
              showmessage('    恢复失败!');
            end;
          finally
            a1.Active := false;
            try // 打开各个数据表是否有错误        except
              showmessage('程序运行发生不可预知错误,请重新启动程序!');
              //结束该程序
              Application.Terminate;
            end;
          end;
        end;
      end;
      self.Caption := '数据备份和恢复';end;
      

  2.   

    上面备份代码中的sk,和cback分别代表什么