怎样用delphi写SQL Server 的备份数据库和还原数据库

解决方案 »

  1.   

    EXEC sp_addumpdevice  'disk','SManage', 'c:\tgc.bak'
    BACKUP DATABASE GManage TO SManageRESTORE FILELISTONLY FROM DISK = 'c:\tgc.bak'
    自己顶
      

  2.   

    //给你两段代码回去看看
    procedure TDataBack.BackDataClick(Sender: TObject);
    begin
      self.Caption := '正在备份数据....';
      a1.Active := true;
      adodm.cback.CommandText := 'backup database xq to disk=''' + Edit_path.Text + ''''; //备份数据库命令语句
      try
        adodm.cback.Execute;
        // 执行备份
        showmessage('      备份成功!');
        a1.Active := false;
      except
        showmessage('      备份失败!');
        a1.Active := false;
      end;
      self.Caption := '数据备份和恢复';
    end;procedure TDataBack.RecoverDataClick(Sender: TObject);
    var DataPath: string;
    begin
      self.Caption := '正在恢复数据....';
      adodm.XQconn.Close;
      adodm.XQconn.Connected := false;
      OpenDialog1.Filter := '备份文件 (*.back)|*.back|所有文件 (*.*)|*.*'; //设置备份文件后缀
      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;
          adodm.cback.CommandText := 'restore database XQ from disk=''' + DataPath + '''' + ' with replace'; //恢复数据命令语句
          try
            try
              adodm.cback.Execute;
              //执行恢复过程
              showmessage('    恢复成功!');
            except
              showmessage('数据库正在被使用!请确定已关闭其它使用该数据库程序!');
              showmessage('    恢复失败!');
            end;
          finally
            a1.Active := false;
            try
            // 打开各个数据表是否有错误
              adodm.YHTS.Open;
              adodm.part.Open;
              adodm.client.Open;
              adodm.Toper.Open;
              adodm.Tuser.Open;
              adodm.ZHBX.Open;
              adodm.Model.Open;
              adodm.ClientFamily.Open;
              adodm.ChargeItem.Open;
              adodm.ClientRoom.Open;
              adodm.Charge.Open;
              adodm.ClientPay.Open;
              adodm.ClientAdvance.Open;
            except
              showmessage('程序运行发生不可预知错误,请重新启动程序!');
              //结束该程序
              Application.Terminate;
            end;
          end;
        end;
      end;
      self.Caption := '数据备份和恢复';
    end;
      

  3.   

    数据备份
    CREATE PROCEDURE sjbf @backpath char(50) AS
    BACKUP DATABASE 数据库名 TO disk= @backpath with init,stats
    GO
    数据恢复
    CREATE PROCEDURE sjhf @backpath char(50) AS
    restore database 数据库名 from disk=@backpath
    GO
      

  4.   

    //先连接数据库,
    ado:='Provider=SQLOLEDB.1;Password='''+Password+''' ;Persist Security Info=True;User ID= '''+UserName+''' ;Data Source= '''+ServerName+''';Initial Catalog=MyData';
    AdoConnection1.ConnectionString:=ado;
    //备份的SQL 语句为:(trim(EdtFilename.Text)为备份的路径)
    sql.add('USE master EXEC sp_dboption goldenstone ,'+'''dbo use only'''+' , '+'''TRUE''');
    sql.Add('use master backup database MyData to disk='''+trim(EdtFilename.Text)+''' with init');
    //数据库还原的SQL语句为:(trim(EdtFilename.Text)为还原的文件路径)
    sql.Add('use master restore database MyData from disk='''+trim(edtFilename.text)+''' with replace');
      

  5.   

    to:boytomato(深爱一人叫颖的女孩!) 
    adodmd是什么组件啊