delphi里A用户恢复数据库的话,可能会有B用户也登陆了系统,怎样才能断开所有用户连接并恢复成功?

解决方案 »

  1.   

      __Query := QuerySQL(DM.AdoConn,'sp_who');
      if Assigned(__Query) then
      begin
        try
          if not __Query.IsEmpty then
          begin
            __Query.first;
            with __Query do while not eof do
            begin
              if lowerCase(Trim(fieldbyname('dbname').AsString)) = LowerCase(Trim(DM.DataBase)) then
              begin
                ExecuteSQL(DM.AdoConn,'kill '+fieldbyname('spid').AsString);
              end;
              next;
            end;
          end;
        finally
          FreeAndNil(__Query);
        end;
      end;
      sleep(2000);  //睡2秒
      

  2.   

    QuerySQL是你自己写的函数吗?