创建个一个delphi工程,主目录为main,子目录为backup,添加一个edit和button,在edit输入要备份的数据库名,当按下button后,不管主目录在那个分区,备份的数据库都放在backup子目录中。
请个位高手指点,如何实现。

解决方案 »

  1.   

    在单击事件或过程中使用如下代码:
    const
      cnBackUpCommand = 'BACKUP DATABASE [%s] TO  DISK = N%s ' + 'WITH  INIT ';var
    FDataBaseName: string;
      sBackUpCommand: string;
      sFileName: string;begin FDataBaseName:=edit1.text;
        sFileName := ExtractFilePath(Application.ExeName) + 'backup' + '\' + edit1.text;;    sBackUpCommand := Format(cnBackUpCommand,
          [FDataBaseName,
          QuotedStr(sFileName)]);
        ADOQuery1.Sql.Text := sBackUpCommand;
        try
          try
            ADOQuery1.ExecSql;
          except
            raise;
            Exit;
          end;
       finally
            ADOQuery1.Close;
       end;    MessageDlg('备份成功!', mtInformation, [mbOK], 0);
        
    end;
      

  2.   

    procedure Tfrmdataback.FormCreate(Sender: TObject);
    var
    SourcePath:string;
    path:string;
    begin
      Self.Caption:=application.Title+'-数据备份';
      //B_Showmessage:=true;
      SourcePath:=ExtractFileDir(Application.ExeName); //取得应用程序路径
       if ForceDirectories(sourcepath) then
       begin
        if(StrLen(PChar(SourcePath))<>3)then
        SourcePath:=SourcePath+'\' ;
        path:= SourcePath+'数据备份' ;
        if ForceDirectories(path) then
        begin
        Edit1.Text:=path+'\'+'gctj'+formatdatetime('yyyymmdd',date)+'.back';
        //设置路径+文件名
        end;    end
        end;procedure Tfrmdataback.Button2Click(Sender: TObject);
    begin
      self.Caption :='正在备份数据.......';
    dm.cback.CommandText:='backup database gctj to disk='''+edit1.Text+'''';
      //备份语句  try
        dm.cback.Execute;//执行备份
         showmessage('备份成功');  except
         showmessage('备份失败');  end;
      self.Caption:='数据备份';
    end;
      

  3.   

    path:= SourcePath+'数据备份' ;
    将数据备份改成backup