深圳全飞鸿

标题: MyDac的第二个重大Bug [打印本页]

作者: zhgc    时间: 2021-1-10 15:34
标题: MyDac的第二个重大Bug
MyDac的第二个重大Bug

bug出在:

CRAccess.pas

procedure TCRConnection.DoError(E: Exception; var Fail: boolean);

    if Reconnect then begin
      FReconnected := False;
      try
        FInProcessError := True;
        if Attempt = 0 then
          Disconnect;
      except // don't raise exception
      end;
      try
        Connect('');
        FReconnected := True;
        if Assigned(FOnReconnectSuccess) then
          FOnReconnectSuccess;        
      except // don't raise exception
      end;
      FInProcessError := False;


FReconnected本来已经设置为True了, 但是在调用处理事件后,不知道是什么原因FReconnected变为False;

作者: zhgc    时间: 2021-1-10 15:54
处理方式修改为:

procedure TDataModule2.MyConnection1AfterConnect(Sender: TObject);
begin
  self.Timer1.Enabled:=true;
end;

procedure TDataModule2.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled:=false;
  if(MyConnection1.Tag=0)then
  begin
    MyConnection1.Tag:=1;
    try  //在XC的实践证明:这里会有死循环 ,会在syant.z_session中产生巨量的数据
      //self.MyConnection1.ExecSQL('SET sql_log_bin=0',[]);
      strCheckVersion:=sessionstart(true);
    finally
      MyConnection1.Tag:=0;
    end;
  end;
end;




欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/) Powered by Discuz! X3.2