Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

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

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

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


 
ЮЮ ©   (2006-04-19 08:33) [1]

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

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


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


> ЮЮ ©

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

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

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


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


> ЮЮ ©

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


 
Johnmen ©   (2006-04-19 09:27) [4]


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


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


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


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


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


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

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


 
Sergey13 ©   (2006-04-19 09:57) [6]

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


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


> Sergey13

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


 
Johnmen ©   (2006-04-19 10:10) [8]


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


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


> OlegOren


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


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

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

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


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


> ЮЮ ©

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

> Johnmen ©


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


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


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


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


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


> Johnmen ©  

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



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

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
5-1132898095
DimaBr
2005-11-25 08:54
2006.06.11
Вызов редактора суб-компонента


2-1148674496
ZV
2006-05-27 00:14
2006.06.11
SOUND


15-1147987140
Petr V. Abramov
2006-05-19 01:19
2006.06.11
Феномен


2-1148567863
GreyT
2006-05-25 18:37
2006.06.11
Координаты курсора


15-1147820909
iZEN
2006-05-17 03:08
2006.06.11
Кто-нибудь пробовал десктопную FreeBSD?