function Taq_r_5.SetDataSet(querydef, fieldname, filename: string;DataSet:TDataSet): Boolean;
var
turl, tfn : string;
AStrm: TMemoryStream;
AStrl : TStringList;
begin
Result:= false;
DataSet.First;
AStrl := TStringList.Create;
AStrm := TMemoryStream.Create;
try
if DataSet <> nil then begin
if uppercase(fieldname) = 'SAMPLELIST'
then (DataSet as TCSVDataSet).SaveToCSVStream(AStrm) // <==== This is not Freed completely
else (DataSet as TBufDataSet).SaveToStream(AStrm);
tfn := filename;
Astrm.Position:= 0;
turl := url + Format('e/SetDataSet?%s', [querydef]);
Result := HttpPostFile(tURL, fieldname, tfn, AStrm, AStrl);
Result:= uppercase(trim(astrl.Text)) = uppercase(BoolToStr(true, true));
end;
finally
AStrl.Free;
AStrm.Free; // <--- it should be freed finally
end;
end;