delphi datasnap客户端休眠,断网后如何手动回复连接?

g58521547 2020-05-30 12:45:47
各位大佬,
我的datasnap客户端程序如果打开后,电脑休眠了或者断网了,那么mainform界面上操作clientdataset的查询修改时候,会显示 Socket Error # 10054 Connection reset by peer,
窗口上输入的数据没保存不敢关闭,有没有办法,让用户手动重新连接一下?
或者程序重新设置一下哪个地方?

另外客户端启动时,mainform, clientmoduleunit,都是一起创建的。

...全文
430 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
814123 2020-06-01
  • 打赏
  • 举报
回复
引用 4 楼 g58521547 的回复:
那么你说的连接服务器, 这个具体怎么写? 我试过用clientmoduleunit里面的 sqlconnection clientmodule1.SQLConnection1.Close; clientmodule1.SQLConnection1.open;好像也不行
重新连接服务端 要把端口 IP都要写上的
814123 2020-05-31
  • 打赏
  • 举报
回复
这个要看是客户端主动断开,还是服务端。客户端电脑休眠或者断网,那就30秒自动保存一次。 服务端的话可以利用多线程,间隔5秒连接一次服务端,连接失败提示用户或者自动在连接。 服务端突然断网,能保存也没有意义,更新不到数据库里…
g58521547 2020-05-31
  • 打赏
  • 举报
回复
那么你说的连接服务器, 这个具体怎么写? 我试过用clientmoduleunit里面的 sqlconnection clientmodule1.SQLConnection1.Close; clientmodule1.SQLConnection1.open;好像也不行
814123 2020-05-31
  • 打赏
  • 举报
回复
引用 2 楼 g58521547 的回复:
我意思,就是如果客户端网络断了,那么界面上如果操作数据库需要联网的话,就会跳出 100054错误,这个时候想把客户端正常关闭都不行,只能结束进程。 及时客户端网络有了,也不行。 能不能手动让客户端的clientmodule模块重新连接一下?就像客户端刚开始打开的时候一样初始化一下连接?
客户端网络不通,即使ClientModule正常也不能连接到服务端的,所以要在后台用多线程检测,5秒检测一次。 检测到网络不通,弹出对话框告知用户,(如用户关闭对话框,则结束进程,如不操作,继续检测,网络通了,自动连接服务端,关闭提示对话框)。
g58521547 2020-05-31
  • 打赏
  • 举报
回复
我意思,就是如果客户端网络断了,那么界面上如果操作数据库需要联网的话,就会跳出 100054错误,这个时候想把客户端正常关闭都不行,只能结束进程。 及时客户端网络有了,也不行。 能不能手动让客户端的clientmodule模块重新连接一下?就像客户端刚开始打开的时候一样初始化一下连接?

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧