zoukankan      html  css  js  c++  java
  • ADOConnection断线重连

    问题: ADOConnection断线重连问题
    描述:

    使用ADOConnection连接oracle数据库,开始正常,当网络断开时数据库连接失败(此时查询ADOConnection.connected属性是true),
    用了 ADOConnection的query在open时都报错,想了一个解决方法,使用定时器判断如下:

    var
      adoq : TADOQuery;
    
    begin
      adoq := TADOQuery.Create(nil);
      adoq.Connection := dm.ADOConn;
      adoq.Close;
      adoq.SQL.Clear;
      adoq.SQL.Add('select * from cat where 1=0');
      try
        adoq.Open;
      except
        try
          dm.ADOConn.Connected := false;
          dm.ADOConn.Connected := true;
        except
        end;
      end;
    end;

    按理说应该重连上了,可是结果还是未连接状态。query在open时依然报错,请问怎么回事啊,怎样解决呢?

    解决方案1:

    var
      adoq : TADOQuery;
    begin
      adoq := TADOQuery.Create(nil);
      adoq.Connection := dm.ADOConn;
      adoq.Close;
      adoq.SQL.Clear;
      adoq.SQL.Add('select * from cat where 1=0');
      try
        try
          if dm.ADOConn.Connected then  
            dm.ADOConn.Connected := false;
    
          dm.ADOConn.Connected := true;
        except
        end;
        adoq.Open;
      except
      end;
    end;

    解决方案2:

    var
      adoq : TADOQuery;
    
    begin
      adoq := TADOQuery.Create(nil);
      adoq.Connection := dm.ADOConn;
      adoq.Close;
      adoq.SQL.Clear;
      adoq.SQL.Add('select * from cat where 1=0');
    
      try
        try
          dm.ADOConn.Connected := false;
          dm.ADOConn.Connected := true;
        except
        end;
        adoq.Open;
      except
      end;
    end;

    以上介绍了“ ADOConnection断线重连问题”的问题解答,希望对有需要的网友有所帮助。
    本文网址链接:http://www.codes51.com/itwd/3187629.html

  • 相关阅读:
    ROS探索总结(三十一)——ros_control
    ROS探索总结(四十二)——twist_mux多路切换器
    综合面试十大维度解析
    面试官实战-2-业务面试官必须掌握的面试方法及实战演练
    面试官实战-1-素质测评起源和分析
    好的招聘官
    好的候选人
    专题工作模板
    月周报模板
    学习记录模板
  • 原文地址:https://www.cnblogs.com/mobilecard/p/9096657.html
Copyright © 2011-2022 走看看