单个adoconnection 因网络不稳定导致的物理连接断开问题
来源:互联网 发布:淘宝买处方药药师回拨 编辑:程序博客网 时间:2024/05/01 22:33
delphi应用程序我一般用ADO进行连接,这方面涉及到好几个现象:
一、正常连接,程序启动后连接数据库,若连接条件都正常,软件很快就能连接成功。这个就不用说了;
二、连接失败。这方面包括数据库服务器不正常、应用程序连接参数错误等等,在连接过程中,会造成界面假死的现象,而且持续时间较长(我设置超时时间好像不起作用,如AdoConn.ConnectionTimeout := 10;)。最后弹出对话框说连接错误,并返回错误信息;这是让我很头疼的问题;
三、和数据库连接过程中,若物理连接断开,应用程序不会检测到,须手工处理。而软件向数据库提交select、Insert、Update、Delete等操作后,应用程序也会出现上面所述的那种情况。对连接检测的处理,我目前使用的方法如下代码所示:
因网络不稳定导致的物理链接断开 Tadoconnection.connected 还是为true 只有调用数据库时 无法链接上数据库
procedure TdmDBConn.AdoConnExecuteComplete(Connection: TADOConnection; RecordsAffected: Integer; const Error: Error; var EventStatus: TEventStatus; const Command: _Command; const Recordset: _Recordset);
var ErrNo : integer; ErrDetail,ConnStr : WideString;
begin
if Error <> Nil then
Begin
ErrNo := Error.Number;
ErrDetail := Error.Description;
ConnStr := AdoConn.ConnectionString;
if Pos('连接失败',ErrDetail) > 0 then
Begin
if GAgentSysParam.ServerConnDB = 1 then
Begin
AdoConn.Close ;
End;
End;
End;
end;
1.只要服务器不正常 绝对出现假死现象,而且持续时间较长
2.Ip配置出错找不到 sqlserver 绝对出现假死现象,而且持续时间较长,而其他 DataBase的名称、用户名、密码出错 都可以 找到服务器。。快速匹配
因此,出现假死现象,而且持续时间较长 绝对是找不到SqlServer服务器,从而根据ado链接机制 重复尝试链接sqlserver服务器产生较长时间的假死现象 与frmMain.ADOConnection1.KeepConnection 属性无关
- 单个adoconnection 因网络不稳定导致的物理连接断开问题
- 解决因手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题
- 手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题
- 关于mysql_query导致连接断开的问题
- 网络不稳定导致服务器SSH连接不稳定解决办法
- adoconnection重新连接问题
- 如何检测ajax因网络断开或延时导致的错误并重连
- rt-thread通过TCP连接(网络+shell)方式调用list_if()导致网络断开的问题分析
- 由防火墙导致的数据库空闲连接断开问题
- 长连接 网络断开问题
- AdoConnection连接池的使用
- AdoConnection连接池的使用
- 网络因素导致系统不稳定?
- ARP病毒导致网络不稳定
- mysql 连接断开的问题
- Android 休眠导致的问题Socket断开
- Android 休眠导致的问题Socket断开
- 关于ORACLE连接RAC不稳定的问题
- Perl学习笔记【Learning Perl】【更新中】
- javascript作用域链(Scope Chain)初探
- 弹出小窗体
- 课程设计之航空订票系统
- ASP统计当前有多少人在线
- 单个adoconnection 因网络不稳定导致的物理连接断开问题
- BW:关于PSA的错误数据
- GridView提示层以及ShowModalDialog使用方式备忘
- ubuntu 10.04如何安装kdevelop
- RTMFP协议
- rand与srand(转)
- Linux crontab 使用方法
- 开篇博客
- PLSQL Developer 设置快捷键