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

Вниз

Insufficient memory блин...   Найти похожие ветки 

 
Oleg_em   (2003-11-21 08:10) [0]

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


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

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


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

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


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

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


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

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

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


 
ЮЮ ©   (2003-11-21 09:19) [5]

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

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


 
Nikolay M. ©   (2003-11-21 09:25) [6]


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

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


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


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

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


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

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


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

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

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


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


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

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


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

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

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

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


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

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


 
Silver Alex ©   (2003-11-21 15:43) [13]


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

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


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

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


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

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


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

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


 
ЮЮ ©   (2003-11-22 08:01) [17]

запросы типа 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

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


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

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

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



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

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

Наверх




Память: 0.51 MB
Время: 0.024 c
14-52399
Igor_thief
2003-11-19 18:18
2003.12.16
Plugins


1-52261
Lion_ua
2003-12-04 12:39
2003.12.16
Оптимизаторы кода в Delphi


3-52097
Inkotex
2003-11-25 15:56
2003.12.16
SQL Запрос


1-52141
Alekzzz
2003-12-04 02:23
2003.12.16
Media Player and ListBox вопрос!


14-52404
mari
2003-11-21 10:50
2003.12.16
не могу войти в чат