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

  • 相关阅读:
    04_面向对象之多态
    03_面向对象之继承
    02_对象和对象封装
    01_什么是类
    01_函数对象
    python_IO操作之B模式介绍
    python_IO操作之rwa模式介绍
    python之初始IO操作01
    Flink基础(十七): Flink CEP 简介
    解决:UserBehavior is already defined as case class UserBehavior
  • 原文地址:https://www.cnblogs.com/mobilecard/p/9096657.html
Copyright © 2011-2022 走看看