Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 17:01   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Перебрать все значения ip таблицы для пинга.

Есть таблица с колонками ip,num,Время_пуск, Время_ост . мне нужно взять все значения ip у которых num=true и пропинговать. Если пингуется то записать время в колонку Время_пуск, если не пингуется то записать время в колонку Время_ост .
Код:
procedure TMainForm.Button1Click(Sender: TObject);
var
t:integer;
EditText:string;
buffsize:integer;

begin
MainForm.ADOTable1.Refresh;
   MainForm.ADOQuery3.Active:=false;
  MainForm.ADOQuery3.SQL.Clear;
   MainForm.ADOQuery3.SQL.Text := 'select ip,Время_пуск, Время_ост from refbook' +
   ' where num=true' +' and Id='+MainForm.DbText1.Caption;
  MainForm.ADOQuery3.Open;
 MainForm.ADOQuery3.Active:=true;
 // MainForm.ADOQuery3.Refresh;
  MainForm.ADOTable1.Edit;


 MainForm.ADOQuery3.DataSource.DataSet.First;
while not MainForm.ADOQuery3.DataSource.DataSet.Eof do
begin
      if (MainForm.ADOQuery3.DataSource.DataSet.FieldByName('IP').Text = '') then
      begin
           showmessage('Введите IP адрес');
           exit;
      end ;


     EditText:=MainForm.ADOQuery3.DataSource.DataSet.FieldByName('IP').Text;
     buffsize:=strtoint(OptionForm.Edit1.Text);
     IdIcmpClient1.BufferSize:=buffsize;
     IdIcmpClient1.Host:=EditText;
     for t:=0 to 2  do
          begin
              IdIcmpClient1.Ping(EditText);
              IdIcmpClient1.Receive(750);
              if IdIcmpClient1.ReplyStatus.TimeToLive=0 then
              ShowMessage('Превышен интервал ожидания для запроса');
          end;

if  IdIcmpClient1.ReplyStatus.TimeToLive=0 then


if MainForm.ADOTable1.FieldByName('Время_ост').AsString='' then
begin
    MainForm.ADOTable1.FieldByName('Время_пуск').AsString:='';
    MainForm.ADOTable1.FieldByName('Время_ост').AsString := TimeToStr(now);
    MainForm.ADOTable1.FieldByName('color').AsString:='Red';
    Beep;
    MainForm.RzTrayIcon1.ShowBalloonHint( 'Внимание остановлен',
                        'IP - '+MainForm.ADOTable1.FieldByName('IP').AsString);

     MainForm.ADOTable1.Post;
end
 else
 begin
if  IdIcmpClient1.ReplyStatus.TimeToLive<>0 then
if MainForm.ADOTable1.FieldByName('Время_пуск').AsString='' then
begin
    MainForm.ADOTable1.FieldByName('Время_ост').AsString:='';
    MainForm.ADOTable1.FieldByName('Время_пуск').AsString := TimeToStr(now);
    MainForm.ADOTable1.FieldByName('color').AsString:='Green';
    MainForm.ADOTable1.Post;
end;
 MainForm.ADOQuery3.DataSource.DataSet.Next;
end;
end;
end;
Aleksandr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перебрать все значения автофильтра Bape}l{ka Microsoft Office Excel 3 28.06.2011 15:11
Перебрать все значения столбца по условию. Aleksandr Общие вопросы Delphi 5 23.06.2011 11:39
Delphi перебрать все символы из Edit AdDa Помощь студентам 2 06.06.2011 09:19
перебрать все CheckBox Aleksandr Microsoft Office Excel 21 03.03.2011 17:01
перебрать все варианты перестановки строк sv_mix Помощь студентам 2 26.07.2008 17:48