Помогите найти утечку пам"яти... Delphi 10.3 SQLite
работаю с базой sqlite, в 300 потоков... если вставляю в базу уникальные значения то все работает отлично... но если попадаются дубликаты, получается утечка пам"яти в строке SQLConnection1.ExecuteDirect(Query); 
Подозреваю, что я пропустил освобождение какой то переменной, так как утечка памяти в компоненте Delphi мало вероятна)
procedure TMyThread.insertTransaction;
label again;
var
Transaction: TDBXTransaction;
SQLConnection1:TSQLConnection;
Query:string;
i:integer;
error:boolean;
begin
again:
try
SQLConnection1:=TSQLConnection.Create(nil);
SQLConnection1.DriverName:='Sqlite';
SQLConnection1.Params.Values['Database']:=ExpandFileName(GetCurrentDir+'\Data\db.db');
SQLConnection1.Params.Values['FailIfMissing']:='False';
SQLConnection1.LoginPrompt:=false;
if not SQLConnection1.Connected then SQLConnection1.Connected:=true;
error:=false;
Transaction:=SQLConnection1.BeginTransaction as TDBXSqliteTransaction;
for i := 0 to codesBuffer.Count - 1 do
begin
Query := 'INSERT INTO codes_table (code) VALUES ('''+codesBuffer[i]+''')';
SQLConnection1.ExecuteDirect(Query);
end;
SQLConnection1.CommitFreeAndNil(TDBXTransaction(Transaction));
except
on E: Exception do
begin
if pos('UNIQUE constraint failed',E.Message)<>0 then
begin
line:='Code: '+codesBuffer[i]+' Duplicated!';
Synchronize(UpdateLog);
codesBuffer.Delete(i);
end else
begin
line:='DBError: In insertingTransaction Exception raised with message: ' + E.Message;
Synchronize(UpdateLog);
end;
SQLConnection1.RollbackFreeAndNil(TDBXTransaction(Transaction));
error:=true;
end;
end;
SQLConnection1.Free;
if (error and (not stop)) then
begin
sleep(200);
goto again;
end;
end;