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

  • 相关阅读:
    UE4 UnLoadStreamLevel
    UE4 Xml读写
    UE4 保存为bitmap
    C++ 不定参数(转)
    C++ 默认参数(转载)
    Tuple初探
    遗传算法matlab实现
    蚁群算法matlab实现
    汉诺塔问题C++实现
    较优H圈matlab实现
  • 原文地址:https://www.cnblogs.com/mobilecard/p/9096657.html
Copyright © 2011-2022 走看看