Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переполнение памяти безобидной функцией.


OlegOren ©   (2006-04-19 08:00:00) 

Суть такая в диспетчере задач видно сколько под себя загребла определенная программка и вот я выяснил что после каждого вызова процедуры обновления ADODataSet1.Refresh увеличивается память! Я заметил что это происходит только в том случае, если в таб. есть колонка IMAGE(MSSQL) и увеличение памяти происходит ровно на размер файла который храниться в этой колонке. Т.е. если файл 10 мб, то после 10 вызовов прога занимает 100мб!
Лечиться ли это?


OlegOren   (2006-04-19 13:23:00) [1]


> Johnmen ©  

Requery достаточно, спасибо


Johnmen   (2006-04-19 13:00:00) [2]


> OlegOren   (19.04.06 12:53) [10]
> Refresh-беда:-(


Да зачем тебе этот рефреш???


OlegOren   (2006-04-19 12:53:00) [3]


> ЮЮ ©

никакого изменения

> Johnmen ©


Requery работает нормально, т.е. не загребает память под себя с каждым вызовом.
Refresh-беда:-(


ЮЮ   (2006-04-19 11:00:00) [4]

>в диспетчере задач видно сколько под себя загребла

А если свернуть/развернуть окно? что диспетчер покажет?


Johnmen   (2006-04-19 10:10:00) [5]


> Sergey13 ©   (19.04.06 09:57) [6]
> Я уверен, что у него не получится как у тебя. 8-))))))))))))))))


Как в воду глядел!
Только что попробовал, из любопытства. Никакого "увеличения памяти" нет!


> OlegOren


А почему Refresh, а не Requery?
:)


OlegOren   (2006-04-19 10:00:00) [6]


> Sergey13

:-) Серьезно, если подставить другую таб. в которой нет столбца IMAGE, то такого не присходит. почему?


Sergey13   (2006-04-19 09:57:00) [7]

2 [5] OlegOren   (19.04.06 09:44)
Это типа домашнее задание  Johnmen-у на выходные?
Я уверен, что у него не получится как у тебя. 8-))))))))))))))))


OlegOren   (2006-04-19 09:44:00) [8]


> Некорректно реализована затея.

Создай новый проект. Создай таблицу с колонкой IMAGE загрузи файл, на клиенте обнови раз десять и увидишь результат.
уж не шибко сложен то проект. чего тут некоректно можно реализовать незнаю.


Johnmen   (2006-04-19 09:27:00) [9]


> OlegOren   (19.04.06 08:50) [2]
> если убрать ее, то у меня смысл затеи теряться.


А в чём смысл затеи?
И как эта затея реализована?


> Вопрос почему происходить увеличение памяти, ...


Некорректно реализована затея.


OlegOren   (2006-04-19 08:53:00) [10]


> ЮЮ ©

По идеи рефреш работает каким образом, он получает данные и размещает в памяти, очередной запуск - стирает старые данные и размещает в памяти новые. Я не думаю что каждый рефреш должен добавляться к старым.


OlegOren   (2006-04-19 08:50:00) [11]


> ЮЮ ©

я привел пример одной записи, но если там 5 записей, то соответственно увеличивается сумма размеров 5 записей...

> Если больше, то колонку IMAGE лучше убрать из этого запроса

если убрать ее, то у меня смысл затеи теряться.
Вопрос почему происходить увеличение памяти, ведь при работе с остальными типами этого не происходит ни на грамм.


ЮЮ   (2006-04-19 08:33:00) [12]

>Т.е. если файл 10 мб, то после 10 вызовов прога занимает 100мб!

А ADODataSet1 точно возвращает одну запись? Если больше, то колонку IMAGE лучше убрать из этого запроса


Наверх

Титульная страница Поиск, карта сайта Написать письмо