Цитата:
finally
Q:=nil;
Q.Free;
end;
Ты шутишь, верно? Сначала ноль переменной, а затем освободить его? Ты гений! : -)
Использование:
finally
Q.Free;
Q:=nil;
end;
Или даже не присваивайте ему значение nil, поскольку Q - локальная переменная ...
Но перечитывая ваш код, я замечаю, что вы используете приложение в качестве владельца. В результате на самом деле это не будет утечка, поскольку она будет освобождена при освобождении приложения. Если вы используете форму, она будет освобождена, когда форма владельца будет освобождена.
Вам следует попытаться вызвать этот запрос около 100 000 раз, чтобы проверить, сохраняет ли он память или просто увеличивает объем памяти до достижения определенного размера. Последнее более вероятно, поскольку память зарезервирована для будущих вызовов ADO.