Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Paradox


Автор: Oleg 23.7.2003, 18:41
У меня в цикле много много раз апдейтится парадоксовская таблица,
после цикла переоткрывается запрос, (селект) который представляет из нее данные. Раньше у меня нереально пучился файл PDOXUSRS.LCK, кто-то мне посоветовал делать FlushBuffers после каждого апдейта. Разрешите уточнить, flushbuffers чего нужно делать, потому что теперь PDOXUSRS.LCK все равно пучится, хоть и не так сильно, а после ошибки "Lock file has grown too large" еще и остается куча (> 100) файлов типа _qsqXXX.db. Как от всего этого избавиться? Народ, ПОМОГИИИтЕЕЕЕЕЕЕЕЕЕЕ, за*?:*?:%*?%ся уже к *?%*?%:%й матери!!! butbut.gif

Автор: Vit 24.7.2003, 01:30
Table. flushbuffers или Query.flushbuffers

А если у вас продолжаются эти проблемы, то это может быть связано с 2мя причинами:

1) Насильственное прерывание квери, например кто-то нажал "Reset" или убил программу из task manager или вы в программе например по Halt вышли, или неправильно организованны потоки с убиением потока. Короче - кверя завершается не корректно.
Исправление:
- выяснить почему, и попытаться устранить причину
- после некорректного завершения программы/квери, при следующем старте программы убивать .net и .lck файлы, делать "Check/Repair table" для каждой таблицы в базе данных

2. Вы используете многопользовательский доступ к базе данных (2 и более программы с одного или разных компьютеров открывают базу данных в одно и то же время). Парадох не предназначен для такого - необходимо перейти на серверную базу данных


И пара советов в догонку:
1) Используйте Query вместо Table и QBE
2) Надо ли держать BLOB в таблице? Может лучше держать в виде отдельных файлов, а если это невозможно вынесите Blob поля в отдельные таблицы...


Автор: Oleg 24.7.2003, 14:25
Цитата
делать "Check/Repair table" для каждой таблицы в базе данных

Это как? То есть методы прямые есть или что? Я вообще в парадохе не силен, т.к. всегда для Oracle и на Oracle пишу в основном, просто такая вот экзотическая задачка встала с локальной БД.

Цитата
1) Используйте Query вместо Table и QBE

Это само собой.

Цитата
2) Надо ли держать BLOB в таблице?

бЛОБОВ у меня нет.
Вообщще спасибо большое.

Автор: Vit 28.7.2003, 06:41
Цитата
Это как? То есть методы прямые есть или что? Я вообще в парадохе не силен, т.к. всегда для Oracle и на Oracle пишу в основном, просто такая вот экзотическая задачка встала с локальной БД.


В БДЕ еслть свои API (DBI-функции) - среди них есть функции и для проверки/восстановления таблиц, а на www.torry.net я видел несколько компонент для этого

Автор: Oleg 28.7.2003, 15:22
Спасибо огромное за ресурс!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)