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

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

При интенсивной работе с таблицами Paradox, они начинают умирать [D6, Paradox]


Страницы:   1 2

djmixer ©   (2006-04-04 03:07:00) 

Привык я работать с MySQL и PHP.
Но тут пришлось написать програмку для локального компа и черт меня дернул написать ее на  Delphi 6.0.
Мало того что работают таблицы Paradox ужасно медленно, например при количестве записей более 20 000 вообще тяжело,
так еще со временем таблицы начинают подыхать, то есть например в таблице у меня 500 записей, а через запрос select * from base выдается только 300, а вот если запрос поставить так:
select * from base order by ID, то уже выдаются все поля.

Теперь например я в среди этих 500 записей не могу выбрать запрос с последним ID(это ключ аутоинкремент), а только с предпоследним(select * from base where ID=).

Помогает мне только переписывание всего содежимого таблицы в файл, потом удаление и создание таблицы и снова внесения в нее всех записей.

Но через некоторое время проблема повторяется.

Я был бы очень благодарен если б мне кто нибудь подсказал как можно предовратить подобные явления,
Или хотя бы как восстанавливать таблицу проще чем это делаю я.

Если интересно привожу  структуру таблицы:
'create table base(ID autoinc, '+
  'filename char(250),bdate date,maker integer,kad_num char(25),bright '+
  'integer,bplace integer,seria char(220),number char(240),ind_kod char(240),pdv integer,tochok integer,'+
  'userer char(255),bmark char(255),added char(250),bary integer,rdate date,sk2 integer,'+
  'dilard char(255),pidst char(255),userard char(255),dildest char(255),restvid char(255),plosha char(255),sam integer,primary key (ID))'


atruhin   (2006-04-05 14:31:00) [21]

FibPlus - это хорошо, но у меня сложилось впечатление, что автору нужны бесплатные компоненты


atruhin   (2006-04-05 14:29:00) [22]

>>либо сделать трехзвенку, создав свой "сервер",
какой сервер? у него локальный доступ.


Megabyte   (2006-04-05 14:28:00) [23]


> Нет никаких индексов. Я их не создавал, мне они не нужны,
>  конечно так медленнее, зато надежнее.

Объясните мне плз, как наличие индексов влияет на надежность?


> ADO+Access, Fireberd-embedded+ib X/FibPlus


MsGuns   (2006-04-05 13:27:00) [24]

Парадокс может работать более-менее нормально, если соблюдать несколько рекомендаций либо сделать трехзвенку, создав свой "сервер", непосредственно работающий с BDE


atruhin   (2006-04-05 04:54:00) [25]

>>то таблицы умирают полностью.
Как она умирает, какое сообщение о ошибке, при обращении?

> select * from base;
> Выдает 300 записей.

И как ты их пересчитываешь? Руками в гриде или как?

> Подскажите какой движок можно

ADO+Access, Fireberd-embedded+ib


djmixer   (2006-04-05 02:07:00) [26]

Еще один вопрос,  вы говорите надо брать другой движок. Подскажите какой движок можно и нужно выбрать в стандартной крекнутой delphi 6.

И можно ли переделать как нибудь безболезненно, так как прога уже сделана  и установлена на около 20 компах в разных районах.


djmixer   (2006-04-05 02:04:00) [27]

Нет никаких индексов. Я их не создавал, мне они не нужны, конечно так медленнее, зато надежнее.
Количество возвращаемых записей проверяется так:
ввожу запрос :
select * from base;
Выдает 300 записей.
А вот такой запрос, сделаный сразу же после вышеуказаного:
select * from base order by id;
Выдает уже 500 записей.
После восстановления таблицы вышеуказаным способом оба запроса выдают одно и то же.
Еще проблемка:
Если комп во время работы программы зависает или вырубается(свет например исчез), то таблицы умирают полностью. Как восстановить еще не придумал.


de_ICER-T44   (2006-04-04 09:02:00) [28]

мда..


Anatoly Podgoretsky   (2006-04-04 09:00:00) [29]

Может это на курсы?


atruhin   (2006-04-04 06:06:00) [30]

>>работают таблицы Paradox ужасно медленно
BDE+Paradox один из самых быстрых локальных движков БД, что то не так в вашей консерватории
>>а через запрос select * from base выдается
только 300
Как проверял кол-во возвращаемых записей?
>>не могу выбрать запрос с последним ID(это ключ аутоинкремент),
как выбирал код плиз.
Пробовал ли, при возникновении проблем, пересоздавать индексы? Падение индексов старая проблемма.


Ильш   (2006-04-04 06:04:00) [31]

черт дернул тебя взять в качестве движка Paradox, а дельфи тут ни при чем!
лучше перепиши пока не поздно на другой движок


Страницы:   1 2

Наверх

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