Вниз
Скачать: CL | DM;

Утечка памяти DataSet   Найти похожие ветки 

← →
Вова   (2012-10-13 03:42) [0]


BaseAlphabet.ClientDataSet1.first;
While Not BaseAlphabet.ClientDataSet1.Eof Do
begin
     BaseAlphabet.CharacterProperties.first;
     While Not BaseAlphabet.CharacterProperties.Eof Do
     begin
           BaseAlphabet.CharacterProperties.Next;
      end;
      BaseAlphabet.ClientDataSet1.Next;
end;


Вообщем в результате продолжительных изысканий, связанных с невероятно бурным ростом программы в памяти, все что у меня осталось от программы это вот эти 2 цикла. И я повесил их запуск на кнопку. И каждый раз нажимая кнопку я обнаруживаю, что программа стала занимать больше места. И так до бесконечности. У меня 2 вопроса - че за фигня? и что делать?


← →
Вова   (2012-10-13 03:58) [1]

вопрос снимается, чуть чуть недотерпел ) оказалось что эту программу можно еще упростить


BaseAlphabet.ClientDataSet1.first;
While Not BaseAlphabet.ClientDataSet1.Eof Do
     BaseAlphabet.ClientDataSet1.Next;


До такой, и результат будет тот же. Также выяснилось что в данном цикле вызывается событие ClientDataSet1AfterScroll, в котором и обнаружилась протечка. Правда вот дело в том, что нафиг мне не нужно чтобы оно вызывалось при программном проходе по таблице, притом что форма даже не открыта, хоть и создана.

В отчаянии, я попробовал сделать так:
BaseAlphabet.ClientDataSet1.DisableControls;

       BaseAlphabet.ClientDataSet1.first;
       While Not BaseAlphabet.ClientDataSet1.Eof Do
          BaseAlphabet.ClientDataSet1.Next;

       BaseAlphabet.ClientDataSet1.EnableControls;


Но это совсем мне не помогло. Итого утечка памяти устранилась, но выяснилось, что программа тратит время на вещи, на которые абсолютно в данной ситуации не нужно тратить время. При этом в интерактивном режиме через DBGrid когда по таблице лазишь, это собитие делает полезную работу.

Откуда возник новый вопрос, можно ли сделать так чтобы при программном прохождении цикла это событие не активировалось?


← →
Inovet ©   (2012-10-13 07:03) [2]

Деактивировать перед, активировать после.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.005 c
15-1356388018
wl
2012-12-25 02:26
2013.04.21
что подарить кресной на новый год?


15-1355987109
Toretto
2012-12-20 11:05
2013.04.21
присвоение результата фанции


15-1356193225
alexdn
2012-12-22 20:20
2013.04.21
asp.net


15-1356121802
Юрий
2012-12-22 00:30
2013.04.21
С днем рождения ! 22 декабря 2012 суббота


15-1356101477
Kerk
2012-12-21 18:51
2013.04.21
А где есть фотографии старых компьютеров?




   Наверх