我使用的是delphi7开发,基于Midas的三层架构 ,客户端用TSocketConnection连接,当我在客户端TClientDataSet.ApplyUpdates(0)时,如果这时客户端到应用服务器的网络断开,如果马上网络恢复,这时没什么问题,可是如果网络差不多断开3秒左右的时候,网络恢复,这时客户端就没响应了,一直死下去。猛将兄们,帮帮忙啊
解决方案 »
- 现在大家最常用的封包分析,查看工具是什么
- 求教关于从数据库里调出数据在tchart上划多条线的小问题!!!谢谢大家了
- 請幫忙看一下,爲什麽程序不能執行到這一步?
- 同一个程序中多个线程同时调用相同的DLL涵数!需要注意些什么(附源吗)在线等
- 用DELPHI写了个QQ群发 直接利用UDP2005B2协议 非钩子
- 如何判断两个speedbutton是不是用的一个glyph?
- Form 焦点控制问题
- 新西兰大学计算机专业的考试题,你会吗?请提供答案。
- 如何批量修改jpg格式的图片大小?
- 哪位大侠知道电子图书网址,计算机方面的,软件工程,delphi编程开发之类的
- 关于oracle存储过程的问题?
- 能不能给一些Delphi消息系统的实例,多谢了!
try
ClientDataSet.ApplyUpdates(0);
except
ShowMessage('计算机没有连接到网络,请重试!');
end;
ClientDataSet.ApplyUpdates(0);
这时如果网络断开,就死了,没法异常的兄弟们,解决了我再开贴给200分呀,更多分也行呀
socketconnection1.connection:=True;
try
ClientDataSet.ApplyUpdates(0);
execept
.....
end;
finally
socketconnection1.connection:=False;
end;
很感谢你关注
不过我的情况是在ClientDataSet.ApplyUpdates(0)时(因为数据量大,所以要几秒)网络断掉,这时程序好像停止,怀疑有死锁,无没响应下去,不会走下去的,那些异常处理没用处
如果更新大量的数据通过SQL语句
也可以在clientdataset的afterpost 里处理已更新的数据
if tclientdataset(Dataset).ChangeCount>=5 then
TClientdataset(Dataset).ApplyUpdates(0);减少更新的数据量个人意见,纯属学习
以前,我只用CLIENTDATASET用在基本单据保存或查询,真正涉及业务的全部是接口。更是很少用存储过程。用接口来完成业务,可以减少网络开销,加快速度!同时更大的好处是业务封状!!
我调试不出,也模拟不出,
但客户那老是会出现这种情况
请大家提些建议