var
Form1: TForm1;
myconnect:Boolean;
implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
var
ip,port:string;
begin
memo1.Clear;
ADODataSet1.Close;
ADODataSet1.Open;
ADODataSet1.First;
while not (ADODataSet1.Eof) do
begin
ip:=ADODataSet1.fieldbyname('ip').Value; //IP地址
port:=ADODataSet1.fieldbyname('port').Value; //端口号
IdTelnet1.Disconnect; //断开连接
myconnect:=False; //初始化
IdTelnet1.ConnectTimeout:=3000; //设置连接超时的时间
IdTelnet1.Host:=ip; //把IP赋值给控件
IdTelnet1.Port:=strtoint(port); //把端口赋值给控件
try
IdTelnet1.Connect;//进行连接
except
end;
if myconnect=True then
begin
memo1.Lines.Add(ADODataSet1.fieldbyname('SeverName').Value+' 成功');
ADODataSet1.Edit;
ADODataSet1.FieldByName('contime').Value:=now;
ADODataSet1.FieldByName('state').Value:='连接';
ADODataSet1.Post;
end else
begin
Memo1.Lines.Add(ADODataSet1.fieldbyname('SeverName').value+' 超时') ;
ADODataSet1.Edit;
ADODataSet1.FieldByName('state').value:='超时';
ADODataSet1.Post;
end;
ADODataSet1.Next;
end;
end;procedure TForm1.IdTelnet1Connect(Sender: TObject);
begin
myconnect:=True;
end;以上代码运行一次,memo1的内容都是连接,运行多次之后,诸如 10次 那么就是超时。
我能确定的是:所有IP和端口都是开放的,就是不明白,执行一次与多次 为啥得到的结果不同?
调试发现,执行多次之后 ADODataSet1.Eof=true adodataset1的结果集直接到最后了。为啥呢?
adodataset1.commandtext:='select * from Telnet ';
Form1: TForm1;
myconnect:Boolean;
implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
var
ip,port:string;
begin
memo1.Clear;
ADODataSet1.Close;
ADODataSet1.Open;
ADODataSet1.First;
while not (ADODataSet1.Eof) do
begin
ip:=ADODataSet1.fieldbyname('ip').Value; //IP地址
port:=ADODataSet1.fieldbyname('port').Value; //端口号
IdTelnet1.Disconnect; //断开连接
myconnect:=False; //初始化
IdTelnet1.ConnectTimeout:=3000; //设置连接超时的时间
IdTelnet1.Host:=ip; //把IP赋值给控件
IdTelnet1.Port:=strtoint(port); //把端口赋值给控件
try
IdTelnet1.Connect;//进行连接
except
end;
if myconnect=True then
begin
memo1.Lines.Add(ADODataSet1.fieldbyname('SeverName').Value+' 成功');
ADODataSet1.Edit;
ADODataSet1.FieldByName('contime').Value:=now;
ADODataSet1.FieldByName('state').Value:='连接';
ADODataSet1.Post;
end else
begin
Memo1.Lines.Add(ADODataSet1.fieldbyname('SeverName').value+' 超时') ;
ADODataSet1.Edit;
ADODataSet1.FieldByName('state').value:='超时';
ADODataSet1.Post;
end;
ADODataSet1.Next;
end;
end;procedure TForm1.IdTelnet1Connect(Sender: TObject);
begin
myconnect:=True;
end;以上代码运行一次,memo1的内容都是连接,运行多次之后,诸如 10次 那么就是超时。
我能确定的是:所有IP和端口都是开放的,就是不明白,执行一次与多次 为啥得到的结果不同?
调试发现,执行多次之后 ADODataSet1.Eof=true adodataset1的结果集直接到最后了。为啥呢?
adodataset1.commandtext:='select * from Telnet ';
解决方案 »
- 数据库存图片问题再问!!
- 有关pos打印机,分单打印不能切纸问题 ,多谢谢各位了
- delphi7 安装完成后,如何注册?请大家帮忙!
- 请问这个SQL语句应该怎样写??????????????????????????
- 有没有函数可以直接实现10进制2进制转换的啊?
- ado的机器名问题
- 如何在同一个程序中建立二个完全独立的线程,请附上源代码给我参考一下,再线等!!!
- 关于fastreport报表的难题!请教!谢谢!
- 怎样把其他应用程序的主菜单变灰?
- 怎样捕获数据库update的错误? on line waiting!
- 满足条件的怎么也不能赋值
- 怎么用sendmessage或者postmessage选中只读下拉框中的某个项目?
分值太少了还是?
端午节之后,如果还没有高人给出答案的话,就 无满意结贴 了.
感谢各位的关注!