Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
4-52442
zdn
2003-10-21 22:41
2003.12.16
LockFile


8-52293
shurik
2003-08-21 01:05
2003.12.16
butmap


3-52113
Malefik
2003-11-24 09:29
2003.12.16
SelectSQL, InsertSQL, UpdateSQL ......


6-52301
Vladimir Bolotin
2003-10-22 21:27
2003.12.16
поддержка нескольких протоколов (POP3, IMAP,...)


9-52045
Livid
2003-06-02 22:54
2003.12.16
kf2->max





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский