如何实现:在delphi程序中如何判断是否连接到服务器

asili 2001-06-16 08:52:00
我是想在与服务器建立连接前,先测试是否能连接上。能的话就传数据去服务器,连不上就将数据暂存在本地。因为程序运行在自动生产线,万一网络故障的话,要保正数据不丢失,程序不能死!
有高人做过吗????请指教。。。。。。。。
...全文
365 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuangning 2001-06-26
  • 打赏
  • 举报
回复
应该说没有大问题,在对数据库操作时都加上try execpt end ;
用一个时钟监测是否连接到服务器也很有必要,
编译时如果出错,首先不会进入execpt,当提示出错后继续运行,就会进入execpt的。
cobi 2001-06-26
  • 打赏
  • 举报
回复
应当不会吧。我的代码也是提供给用户使用的,一直没有问题。我的环境是WIN98 + SQL SERVER7。其实你也可以这样做,在启动数据库之前,启动一个计时线程,如果超过某一段时间即停止程序执行。
machin 2001-06-26
  • 打赏
  • 举报
回复
高手给个主意吧??。。
zjqyb 2001-06-26
  • 打赏
  • 举报
回复
if not ping(服务器IP) then
exit;
try
curdatabase.connect:=true;
except
exit;
end
//ping函数要自己写
一般ping几秒就能知道服务器是否能联接
machin 2001-06-23
  • 打赏
  • 举报
回复
快给分吧,同意cobi的做法。

不过能否通过数据库错误返回代码来作判断,决定我该退出程序呢,还是稍作等待。。
machin 2001-06-23
  • 打赏
  • 举报
回复
to cobi: 你的代码我试了一下,还是不行。如果我把网线拔了,还是没有执行execpt的代码。

cobi 2001-06-21
  • 打赏
  • 举报
回复
我习惯程序开始的时候加上这样的代码:

with Db1 do
begin
Connected := false;
Params.Clear;
DatabaseName := 'SvrBd';
AliasName := 'Sd_Bd';
LoginPrompt := false;
try
Connected;
except
Application.MessageBox(pchar('无法连接本地数据库,系统终止!'),pchar('警告'),mb_ok);
Application.Terminate;
end;
end;

判断数据库是否已经启动。对一般的应用环境来说,数据库服务器应当不会轻易死掉,所以在做有关的数据操作时都没有去查看数据库服务器是否还可用。当然可以在使用post或者del操作时,加上try..except结构,一旦有问题再去调用上面的代码,已保证服务器可用。
machin 2001-06-21
  • 打赏
  • 举报
回复
我用的是database,如何判断当前的数据库服务是否启动??

因为如何数据库未启动,而我在前台作查询动作时,程序报错,并且无法恢复,需要关闭重新启动。

问题很严重,用户强烈要求改善功能。
flysky 2001-06-16
  • 打赏
  • 举报
回复
用DIRECTORYEXITS。
if not directoryexits('server's path') then
.......
machin 2001-06-16
  • 打赏
  • 举报
回复
我也遇到如此问题,但是能力有限,关注~~

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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