I faced the same problem many times, I found that it is a default loading behavior not just in the Uni-component, all similar database components will trigger .onDataChange
twice or more when loading, the only way to go over it is by using workarounds to ignore the 1st trigger.
You can find also a similar problem here
If triggering twice is annoying you, try my workaround for it:
var c: integer; // must be global and reset to 0 when u close your query
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if c = 2 then
begin
// do your actions
end
else
begin
inc(c);
end;
end;
It will eliminate all none necessary triggers,
hope that helps.