sergushkin
21:03:2007, 13:44
Помогите пожалуйста разобраться со следующей проблемой.
Перепробовал MySQL, MS SQL Server. Подключался через BDE, ADO.
Для тестирование в цикле выполняю ошибочный запрос к БД. При этом идет рабухание программы.
Но если окно программы свернуть в таскбар и востановить, то память, занимаемая программой, уменьшается. Можно ли от этого избавиться либо есть ли команда сброса буферов кэша программы?
grigsoft
26:03:2007, 06:47
SetProcessWorkingSetSize(Process, -1, -1)
sergushkin
26:03:2007, 13:05
Данная функция не помогает. Идёт реальная утечка памяти.
См.
]]>http://cppbuilder.ru/component/option,com_...id,130/catid,6/]]>
sergushkin
16:11:2007, 11:40
Я разобрался в этой проблеме. Загвоздка оказалась в обрабоки исключительных ситуаций.
При возникновении эксепшена сознается соответстующий класс дочерний к Exception. И если его не обработа в секции catch, а указать просто catch(...), то память, выделенная под класс эксепшена не освобождается. Таким образов в ADO следует обработать EOleException, а в BDE - EDBEngineError