![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нехватка памяти в BDE [D5, IB5.x]
Извращенец2 © (2002-09-11 15:24:00)Здравствуйте! Столкнулся с такой проблемой: похоже BDE жрет память и самостоятельно ее не освобождает. Во время разработки проекта открываю наборы данных (tDatabase.Active=true) и через некоторе время(2-3 часа) при попытке работы с данными выходит ошибка "Unsufficient memory for this operation". Догадался, что запас памяти, выделенный для BDE кончается. Как решить эту проблему, кроме как постоянно следить за закрытостью наборов данных при разработке?
Заранее спасибо:)
Виталий Панасенко (2002-09-12 09:08:00) [1]BDEAdmin->Configuration->Init-SharedMemSize сделай по-больше, чем 2048
Alexandr (2002-09-12 06:34:00) [2]в дельфи при отладке Run/ProgramReset не нажимай т.к. в этом режиме BDE глючит..., а впрочем, как и при работе "снять задачу" по-моему.
Извращенец2 (2002-09-12 05:58:00) [3]База у меня IB 5.6. Я точно уверен, что это BDE жрет память.
А что за файлы *.lck? Некоторые люди советовали увеличить объем выделяемой памяти через какое-то св-во алиаса...Не скажете как?
Я конечно постараюсь закрывать соединения, но как бы я там ни старался, эта ошибка выходит вновь.
MsGuns (2002-09-11 19:12:00) [4]>KDS © (11.09.02 19:01)
>или менять у нее WorkDirecory
да просто постирать файлы с расширением LCK
Вот после этого точно придется Reset давить.
KDS (2002-09-11 19:01:00) [5]>или менять у нее WorkDirecory
да просто постирать файлы с расширением LCK
MsGuns (2002-09-11 18:42:00) [6]>KDS © (11.09.02 18:34)
>И при выходе из программы всегда закрывать соединение
Session.Close;
Вообще-то при выходе из программы работает деструктор. Он в числе прочего выполняет приведенную Вами строку, закрывая сессию.
Хуже, если прога не завершилась нормально, тогда сессия остается открытой и конкурирует с "висящей" в ОП Делфой. Повторный запуск исправленного проекта в таких случаях и приводит к нехорошим экскпшинам. В таких случаях надо или опускать Делфу или менять у нее WorkDirecory
KDS (2002-09-11 18:34:00) [7]>MsGuns
Ты прав!
И при выходе из программы всегда закрывать соединение
Session.Close;
MsGuns (2002-09-11 18:29:00) [8]>tDatabase.Active=true во время разработки.
Ни в коем случае !
Только на фазу проектирования визуальных компонент (гридов, например). Затем сразу закрывать и коннектить программно, например, по FormShow. Избавит от огромного множества проблем, особенно если юзаешь Paradox или dBase (зависания, сообщения типа Table in use.. и т.д.)
ppcat (2002-09-11 18:16:00) [9]Попробуй так: сначала Project -> Build, затем Run.
REA (2002-09-11 16:40:00) [10]Скорее всего память жрет кто-то другой, а ему просто нехватает.
А какого рода операции с базой?