ebbene sì, ancora io

La situazione è la seguente:

Form1.q1ZPRFILE.Active := True;
Form1.q1ZPRFILE.SaveToFile(Form1.NomeFile);

dove Form1.q1ZPRFILE è un TBlobField di un oggetto TSQLQuery.

il mio problema è questo:

il SaveToFile può durare parecchio, anche svariati minuti se chi si collega al DB è in remoto via internet e io avrei bisogno di sapere a che punto è del DL.

il SF viene eseguito in un thread apposito quindi il programma che lo ha eseguito è in grado di operare e io speravo che andando ad analizzare ogni tot tramite un TTimer la dimensione del file che si sta salvando con un

fsFile := TFileStream.Create(NomeFile, fmOpenRead or fmShareDenyNone);
try
Result := fsFile.Size;

potessi vedere il progresso ma il programma mi risponde picche dicendo che (ovviamente) il file è allocato da un altro processo.

Come Posso fare?