用database连局域网数据库没响应的问题(100分)

L

ljun

Unregistered / Unconfirmed
GUEST, unregistred user!
我用database连局域网中一台计算机的数据库,现在需要输入
那台计算机的名字才能连上,如果计算机名输入错了或者那台计算机的数据库
没打开,那么程序就没响应了,请问各位有什么办法能设置个时间比如说,15秒
后连不上就断开使得database.close。ADO中有个timeout好象就是可以实现的,请问
database有没这种办法。
 
to:shbjkl
请问能说的详细一点吗
 
try
except
 
和我那个问题差不多
 
try
connect :=true;
except
showmeesage('');
end;
 
to sunrainwang,这样不行的,连通前先检测网络是否连通。
 
各位,try except只是保护异常啊,这个我已经写了,现在问题是输入的
计算机名出错就程序死了啊!
 
to:fonder
那你的问题得到解决了吗?
 
TIMER 不可以吗?

///连结代码
...
TRY
CONNECTED:=TRUE;
FLAG:=TRUE;
EXCEPT
SHOWMESSAGE('Not Connected');
END;
//////

////时间代码/////

IF (NOT FLAG) THEN
BEGIN
if (i > 300) then
begin
SHOWMESSAGE('超过了连结时间,连结将关闭');
database.close;
timer1.disabled;
end else i:=i+1; //继续计数;
END else timer1.disabled;
///停止计算
 
to:IUPRG
谢谢你的回答,timer我不是很熟悉,所以没用,请问你写的代码是用在try except后面
吗?还有这个‘FLAG’是什么,自己定义的boolean型参数吗
 
对了,还有,这个300是指什么,300秒还是300 ms?这个单位是电脑自动识别的吗?
 
哈哈,怎么既然没想到timer,300是0.3秒
 
to:IUPRG
我调试了一下,系统说timer1.disabled 没这个属性啊!
 
Timer1.Enabled:=false;
 
赫赫,我写的有些着急,将vfp的语句混进去了,其实你只要看懂原理就行了
细节的东西,自己捉摸,不可能死搬硬套的:)
我写的300是个全局变量,你可以在form初期设为1,它的作用就是用timer倒计时,它和timer
的interval属性配合使用,如果interval:=1000(系统默认ms毫秒)则300相当于300秒啊(太长了
吧,可以适当改interval为100,i:=150,这样就是15秒)
timer有enabled属性,timer1.disabled:=true <=> timer1.enabled:=false 不是吗?
flag 没错,就是一个boolean标志,初始值false
时间代码放入timer的onTimer事件,:)
 
好的,多谢IUPRG,结贴!
 
多人接受答案了。
 
顶部