Добрый день пользователи данного портала. Пишу сюда с просьбой о помощи, т.к. какой уже день подряд не могу решить одну проблему.
Проблема заключается в таймере. Что нужно от таймера: каждые 5 минут делать запрос в бд сайта(mysql) и проверять значения в одном столбце, если количество результатов больше 0, то выводить messagebox, если нет то нет. Проблема заключается в том, что messagebox выводится в не зависимости от условия, если быть более точным. То если условие сработает хоть один раз, то окошко это будет вылазить постоянно, пока не закроется программа. Помогите пожалуйста решить данную проблему. Код прилагаю. код немного упрощен от идеала, но суть думаю понятна.
Код:
procedure TForm1.Timer3Timer(Sender: TObject);
begin
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add('SELECT COUNT(*) FROM dynamit_test WHERE status=3');
MyQuery1.Open;
j:=MyQuery1.FieldByName('count(*)').AsInteger;
if j>0 Then
Timer3.Enabled:=False;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add('SELECT * FROM dynamit_test WHERE status=3');
MyQuery1.Open;
MessageBox(Handle, 'вам пришло новое сообщение','Оповещение',MB_OK);
try
MyQuery1.Edit;
MyQuery1.FieldByName('status').AsString := '2';
MyQuery1.Post;
finally
end;
Timer3.Enabled:=True;
end;