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

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

временные db файлы при формировании запросов [D5, Paradox]


leonon ©   (2003-09-15 17:35:00) 

Добрый вечер! При формировании запросов (Paradox, BDE) в приват директории формируются временные DB файлы. Кто за это отвечает и как грамотно их удалять?


MsGuns   (2003-09-17 19:05:00) [1]

Если все эти N запросов нудно выполнять последовательно, то используй один компонент TQuery, каждый раз его динамически формируя.


Hawk2   (2003-09-17 18:22:00) [2]

Может просто Кверь закрывается раньше чем выполнятся все необходимые действия для его открытия. Получается некорректное закрытие запроса. Попробуйте открыть и закрыть эти таблицы (ну хоть часть если их много) вручную и посмотрите что получится.


Leonon   (2003-09-17 16:53:00) [3]

Правильно, но прога то не вылетает и эксцепшены не лезут! Все работает корректно, да и часть временных файлов по закрытию программы то же пропадают. А часть, именно N штук - остается! :((((


Hawk2   (2003-09-17 15:50:00) [4]

А я и не говорил что код имеет какое-то отношение.
Всеравно что-то там у тебя неправильно закрывается. У меня например эти файлы остаются только если прога вылетела, комп завис и пр.


Anatoly Podgoretsky   (2003-09-17 15:43:00) [5]

Leonon © (15.09.03 17:50) [2]
Этот код к проблеме не имеет отношения.
То про что ты говоришь имеет отношение к сессии.


Leonon   (2003-09-17 15:17:00) [6]

Объясняю. База очень большая. Происходит обработка файлов в цикле. Для каждого файла формируется своя выборка, по своим параметроам. Ячно?


Hawk2   (2003-09-17 14:13:00) [7]

Код выглядит примерно так

for I:=1 to N do begin
...
Query.Open;
try
...
finally
Query.Close;
end;
...
end;

Я не могу понять смысл этого кода. Это типа N раз открывается один и тот же Кверь, а потом N раз закрывается? И зачем?


leonon   (2003-09-17 13:11:00) [8]

Этот вариант хорош, но неужели нужно все-таки в ручную?

Вот в доке прочитал, есть следующие свойства и методы у TSession:

PrivateDir - Определяет каталог временных файлов, генерируемых BDE для компонентов баз данных TDatabase, связанных с данным компонентом

DropConnections - Уничтожает все неактивные временные компоненты баз данных TDatabase, связанные с сеансом

Однако это не помогает... Что еще посмотреть или попробовать?


MsGuns   (2003-09-15 20:10:00) [9]

В событии OnCreate Гл.формы ДО открытия TdataBase (или в ее отсутствии первогозапроса) чистить Private-каталог. То же самое и в OnCloseQuery/OnClose формы после закрытия последнегоНД


Leonon   (2003-09-15 19:19:00) [10]

Ну что, ни у кого нет идей? :((


Leonon   (2003-09-15 17:50:00) [11]

Код выглядит примерно так

for I:=1 to N do begin
...
Query.Open;
try
...
finally
Query.Close;
end;
...
end;

Что тут может быть неправильного? Однако ж файлов столько, сколько N, и при закрытии приложения они не удаляются. Как правильно?


Anatoly Podgoretsky   (2003-09-15 17:47:00) [12]

За это отвечает BDE, а удалять не нужно, при правильной работе сами удаляются.


Наверх

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