我想做个数据库的备份 ...
我的数据库路径是:F:\bysj\data\xqwy.mdb;我从别的软件里 copy 了代码 ,可就是不知道下面的空 该添什么  大家帮个忙
 CopyFile(PChar(这里不知道该添什么),PChar(SaveDialog1.FileName+'.mdb'),True);

解决方案 »

  1.   

    API中的CopyFile: 
    BOOL WINAPI CopyFile(LPCSTR oldFileName, LPCSTR newFileName, BOOL failIfExists); 
    oldFileName: 原始文件名; 
    newFileName: 目标文件名; 
    failIfExists: 目标文件已存在时的处理办法。TRUE则不覆盖并返回失败标记,FALSE则覆盖。 
    返回值:TRUE代表成功,FALSE代表失败。 
      

  2.   

    CopyFile函數,文件拷贝函数.其基本結構如下:
    copyfile(   
                  lpcstr       lpexistingfilename,           //       源文件路径   
                  lpcstr       lpnewfilename,                     //新文件路径   
                  bool       bfailifexists                           //为true的话,       如果新文件已存在,       则返回false;如果為false的話,如果新文件已經存在,會將原來的覆蓋.   
                  );  
    函數成功返回true,失敗返回false;举例:
    CopyFile(pChar('sql.txt'),pChar(ExtractFilePath(Application.ExeName) + '2.txt'),true);
      

  3.   

    用delphi对Access表的备份、恢复、压缩...
    在uses单元中加入ComObj, ActiveX;
    //引用ComObj,ActiveX
    function CompactDatabase(AFileName,APassWord:string):boolean;
    //压缩与修复数据库,覆盖源文件
    const
      SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
          +'Jet OLEDB:Database Password=%s;';
    var
      SPath,SFile:Array [0..254] Of Char;
      STempFileName:String;
      JE:OleVariant;
    begin
      GetTempPath(40,SPath);//取得Windows的Temp路径
      GetTempFileName(SPath,'~CP',0,SFile);//取得Temp文件名,Windows将自动建立0字节文件
      STempFileName:=SFile;//PChar->String
      DeleteFile(STempFileName);//删除Windows建立的0字节文件
      try
        JE:=CreateOleObject('JRO.JetEngine');//建立OLE对象,函数结束OLE对象超过作用域自动释放
        OleCheck(JE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
            format(SConnectionString,[STempFileName,APassWord])));//压缩数据库
        //复制并覆盖源数据库文件,如果复制失败则函数返回假,压缩成功但没有达到函数的功能
        result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
        DeleteFile(STempFileName);//删除临时文件
      except
        result:=false;//压缩失败
      end;
    end;
    procedure TBackup.Button2Click(Sender: TObject);
    begin
      PostMessage(handle,wm_close,0,0);
    end;
    procedure TBackup.Button1Click(Sender: TObject);
    var
      path:string;
    begin
      if SaveDialog1.Execute then
        if SaveDialog1.FileName <> '' then
        begin
          path := ExtractFilePath(application.ExeName);
          try
            copyfile(pchar(path+ 'db.mdb'), pchar(SaveDialog1.FileName+'.bak'), false);
            messagebox(getactivewindow(),'成功备份数据!','提示!' ,MB_OK + MB_ICONINFORMATION);
          except
            messagebox(getactivewindow(),'备份数据失败,请重试!!','错误!' ,MB_OK + MB_ICONERROR);
          end;
        end;
    end;
    procedure TBackup.Button3Click(Sender: TObject);
    var
      path:string;
    begin
      if OpenDialog1.Execute then
        if OpenDialog1.FileName <> '' then
        begin
          path := ExtractFilePath(application.ExeName);
          try
            DM.ADOConnection1.Connected := false;
            Deletefile(path+'db.mdb');
            copyfile(pchar(OpenDialog1.FileName),pchar(path + 'db.mdb'), false);
            messagebox(getactivewindow(),'成功恢复数据,单击确定后请重新运行软件!','提示!' ,MB_OK + MB_ICONINFORMATION);
            Application.Terminate;
          except
            messagebox(getactivewindow(),'恢复数据失败,请重试!!','错误!' ,MB_OK + MB_ICONERROR);
          end;
        end;
    end;
    procedure TBackup.Button4Click(Sender: TObject);
    var
      sFileName: String;
    begin
      sFileName:=ExtractFilePath(Application.ExeName)+'db.mdb';
      //sBarText('正在压缩数据库,请稍候......');
      Self.Enabled:=false;
      Self.Cursor:=crSqlWait;
      try
        DM.AdoConnection1.Close;
        if  CompactDatabase(sFileName,'') then
        begin
          messagebox(getactivewindow(),'压缩数据库完毕!','成功!' ,MB_OK + MB_ICONINFORMATION);
          Button1.Enabled := true;
        end
        else
          messagebox(getactivewindow(),'压缩数据库失败!','错误!' ,MB_OK + MB_ICONERROR);
        DM.AdoConnection1.Open;
      finally
        Self.Enabled:=true;
        Self.Cursor:=crDefault;
      end;
    end;
      

  4.   

    SaveDialog_toMdb: TSaveDialog;  if SaveDialog_toMdb.Execute then
      begin
        if FileExists(SaveDialog_toMdb.FileName) then
          if Application.MessageBox(PChar('此文件夹已经包含一个名为“'+ExtractFileName(SaveDialog_toMdb.FileName)+'”的文件,是否覆盖?'),'提示',MB_OKCANCEL+MB_ICONQUESTION)=IDCANCEL then Exit;
        if CopyFile(PChar(ExtractFilePath(Application.ExeName)+'Dhjbgl.mdb'),PChar(SaveDialog_toMdb.FileName),False) then
           Application.MessageBox('数据备份成功','提示',64)
        else
           Application.MessageBox('数据备份失败','提示',64);
      end;
      

  5.   

    CopyFile(PChar(ExtractFilePath(application.ExeName)),PChar(SaveDialog1.FileName+'.mdb'),True);
      

  6.   

    相当震惊help都不看的吗?现在的人无语