По таймеру обновляю информацию в таблице, затем загружаю информацию из таблицы в tstringgrid, однако информация загружается старая (и обновляется только после перезагрузки программы). Подскажите плз, как сделать, чтобы все обновлялось сразу же?
Спасибо!
код ниже:
procedure TMainForm.UpdateData();
var
i:integer;
SqlQuery:TQuery;
begin
SqlQuery:=tquery.Create(nil);
SqlQuery.SQL.text:='SELECT * FROM table.db';
SqlQuery.Open;
SqlQuery.First;
for i:=1 to StringGrid1.ColCount-1 do
StringGrid1.rows[i].Clear;
i:=1;
while not SqlQuery.Eof do begin
stringgrid1.Rows[i].Add(SqlQuery.FieldValues['Value1']);
stringgrid1.Rows[i].Add(SqlQuery.FieldValues['Value2'])
SqlQuery.Next;
inc(i);
end;
SqlQuery.close();
SqlQuery.free();
end;
procedure TMainForm.Timer2Timer(Sender: TObject);
var
SqlQuery:TQuery;
SqlQueryEdit:TQuery;
begin
timer2.Enabled:=false;
SqlQuery:=TQuery.Create(nil);
SqlQuery.SQL.Text:='SELECT * FROM table.db';
SqlQuery.Open;
SqlQuery.First;
while not SqlQuery.Eof do begin
SqlQueryEdit:=TQuery.Create(nil);
SqlQueryEdit.AutoRefresh:=true;
if SqlQuery.FieldValues['Value1']='TheValue') then
SqlQueryEdit.SQL.Text:='UPDATE table.db SET Value1=\"'+NewValue+'\" WHERE Id='+SqlQuery.fields[0].Text+'';
if SqlQueryEdit.SQL.Text<>'' then
SqlQueryEdit.ExecSQL();
SqlQueryEdit.close();
SqlQueryEdit.Free();
SqlQuery.Next;
end;
SqlQuery.close();
SqlQuery.free();
UpdateData();
timer2.Enabled:=true;
end;