我与遇到一个棘手的问题,我的程序在登陆窗口使用了Adoconnction连接过数据库(keepconnection属性为false),登陆之后我将登陆窗体释放掉,尝试用程序还原数据库(我用了"use master"),却总是提示数据库在使用或无法获得访问权,真是苦恼。
    请各位不吝赐教!

解决方案 »

  1.   

    keepconnection属性为True 。就可以了
      

  2.   

    前一个Adoconnction 已经断开并释放,但还是不行。
    后一个指向master
      

  3.   

    是不是忘了close的问题,可以试试,或重新连接。
      

  4.   

    Spqk005(舍甫琴柯) 先谢过了
      

  5.   

    function RestoreDB:Boolean;
    var
      sFile,TmpFile,BackupFile:string;
      p1,p2:PAnsiChar;
    begin
      //BackFile:='../DataBase/'+DateToStr(Date)+'.mdb';
      //TmpFile:='../DataBase/'+'temp'+DateToStr(Date)+'.mdb';
      sFile:='../DataBase/HouseSales.mdb';
      BackupFile:='../DataBase/HouseSalesBackup.mdb';
      TmpFile:='../DataBase/TmpHouseSales.mdb';
      p1:=StrNew(PAnsiChar(BackupFile));
      p2:=StrNew(PAnsiChar(sFile));
      try
      screen.cursor:=crSQLWait;
        try
          if FileExists(BackupFile) then
            begin
              ReNameFile(sFile,TmpFile);
              CopyFile(p1,p2,true);
              //RenameFile(BackupFile,sFile);
            end;
          DeleteFile(TmpFile);
          result:=True;
        except
          RenameFile(TmpFile,sFile);
          result:=False;
        end
      finally
        strDispose(p1);
        strDispose(p2);
        screen.cursor:=crDefault;
      end;
    end;