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

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

Insufficient memory блин... [D5, Paradox]


Oleg_em ©   (2003-11-21 08:10:00) 

Добрый день !
вот пришлось таки использовать BDE для работы с парадоксовыми таблицами, работаю с TQuery и часто появляется ошибка недостаточности памяти для выполнения операции.
в BDE Admin Config->System->INIT всяка игрался с параметрами
один фик...
+ после запросов появляются файлы _qsq1.db,[2]
BDE 5.01
где еще что подкрутить ?
таблицы то небольшие.. 40 000, 360 000 записей


Oleg_em   (2003-11-24 07:42:00) [1]

2ЮЮ
пробовал и так, результат тотже.
что интересно, Query.Close не приводит к освобождению памяти и удалению файлов _qsq.db, мож там нада еще какие шаманства применять...

P.S. я знал что есть проблемы PARADOX-BDE-DELPHI
но штоб ТАКИЕ !!!


ЮЮ   (2003-11-22 08:01:00) [2]

запросы типа select a.kod, b.name, c.date from "base\kod" a, "sprav\name" b, "sprav\date" d where [бум бурум}в Paradox-е оформляются так:
select a.kod, b.name, c.date from ":Base:kod" a, ":Sprav:name" b, "":Sprav:date" d where [бум бурум}
где :Sprav, ":Base - алиасы
см. "Heterogeneous joins" в LocalSQL

>в смысле что собирать в один запрос данные из разных таблиц
Это называется из разных баз данных, а таблицы, вообще-то, следует хранить в одной базе данных


служивый   (2003-11-21 19:44:00) [3]

Попробуй принудительно указать PrivDir при старте приложения


Anatoly Podgoretsky   (2003-11-21 15:55:00) [4]

Все запросы выполняются на клиентской машине, для этого таблицы требуется туда закачать. Если не требуется двухнапрпвленый курсор, то стоит сменить на однонаправленый. Зависит от использования запроса.


Oleg_em   (2003-11-21 15:49:00) [5]

когда увеличил до 4096 работать стало горазде медленнее
при 1024 положительного результата (исчезновение Insufficientа)не принесло
есть подозрение, что в случае с парадоксом нельзя применять
запросы типа select a.kod, b.name, c.date from "base\kod" a, "sprav\name" b, "sprav\date" d where [бум бурум}
в смысле что собирать в один запрос данные из разных таблиц...
попробую еще переделать логику работы в этом плане...


Silver Alex   (2003-11-21 15:43:00) [6]


> @Silver Alex у меня и было 2048
> изменение размера блока ни к чему хорошему не привело

и что случилось?


Oleg_em   (2003-11-21 15:16:00) [7]

фик, все вернулось как было
уже просто не знаю что делать.......
мож BDE 5.01 глючный ?


Oleg_em   (2003-11-21 11:06:00) [8]

ого какая дискуссия тут ;-)
@Silver Alex у меня и было 2048
изменение размера блока ни к чему хорошему не привело

> Программу при отладке по Ctrl+F2 закрываешь?
нет, закрывается всё нормальным образом.

повторюсь, установка параметра LOCAL SHARE = TRUE
оказалось правильным решением !
по крайней мере на текущий момент ;-)


Silver Alex   (2003-11-21 10:42:00) [9]


> Anatoly Podgoretsky © (21.11.03 10:23) [9]

Возможно я и ошибаюсь, но думаю дело в этом, можно хотя бы попробовать


Anatoly Podgoretsky   (2003-11-21 10:23:00) [10]

LOCAL SHARE = FALSE требует очень много памяти.

Silver Alex © (21.11.03 10:06) [8]
А это еще зачем, у него нет ошибки TABLE FULL


Silver Alex   (2003-11-21 10:06:00) [11]

запусти BDE, Configuration->Drivers->Native->Paradox->Block Size
поставь побольше, например 2048, может поможет


Рамиль   (2003-11-21 09:59:00) [12]


> Программу при отладке по Ctrl+F2 закрываешь?

Да уж, при работе с BDE прогу по Ctrl+F2 лучше не закрывать, а то потом перезагрузкой лечить надо.


Nikolay M.   (2003-11-21 09:25:00) [13]


> появляется ошибка недостаточности памяти для выполнения
> операции

Программу при отладке по Ctrl+F2 закрываешь?


ЮЮ   (2003-11-21 09:19:00) [14]

>прога не вылетает, т.к. все ExecSQL обрамлены в Try .. Except

А в самом коде ошибок не бывает? ExecSQL программу не завалит, а вот AV - может (или Program Reset из-под IDE)


Oleg_em   (2003-11-21 09:05:00) [15]

2RDen прога не вылетает, т.к. все ExecSQL обрамлены в Try .. Except
сейчас поставил в настройке LOCAL SHARE = TRUE
стало гораздо лучче ;-)
похоже это и есть решение проблемы.

P.S. у меня XP, так что я был очень удивлен нехваткой памяти ;-)


Oleg_em   (2003-11-21 09:01:00) [16]

Просто БДЕ не тянет,
оптимистичное замечание ;-)


RDen   (2003-11-21 08:50:00) [17]

1. У меня было такое пока работал в 98-й винде.
2. После "неаварийного" закрытия запроса временные файлы (типа _qsq1.db) уничтожаются, а у Вас они остаються видимо из-за того, что прога "вылетает".


Виталий Панасенко   (2003-11-21 08:49:00) [18]

Смотря, какие запросы ты выполняешь... У меня был ну очень простой - обновить поле одной таблицы, значениями другой... Не хватало FILE HANDLE. Пришлось в MS SQL запихнуть.. Да, у меня были DBF... Но разницы, по моему, нет... Просто БДЕ не тянет


Наверх

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