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

Вниз

Глюки Paradox, либо...   Найти похожие ветки 

 
serko ©   (2006-05-18 22:55) [0]

Всем ЗДРАСТЕ! У меня есть база Paradox, которая создавалась около 3-х лет, в ней находятся данные о врачах. сейчас там уже больше 2300 записей, и вот недавно произошел глюк! После добавления врача при повторном запуске проги выскакивает ошибка "Corrupt table/index header ..."
И пока я не вставлю резервную копия базы прога не заработает! Этот глюк произошел именно при достижении такого числа записей, хотя насколько я знаю это не предел. У меня поле (порядковый номер) на котором установлен Index имеет значение LongInteger.
Это основная проблема! Помогите с ней разобраться!

И еще один вопрос по этой базе! Та же база... Я в Combobox загружаю только имена врачей:

form9.Table1.First;
for k:=1 to form9.Table1.RecordCount do
begin
     form1.ComboBox4.Items.Add(form9.Table1.Fields[1].AsString);
     form9.Table1.Next;
end;

Но тоже в один прекрасный момент (раньше чем первый глюк) в Comboboxe пропадают последние 10 врачей, хотя в самой базе они есть, и form9.Table1.RecordCount совпадает со значением в базе. Как это обяснить? Ато меня тероризируют а я незнаю что ответить! Помогите ПЛИЗ!


 
unknown ©   (2006-05-18 23:04) [1]

Да уж. Парадокс.
Попробуй удалить файлы *.px, *.x , *.y и пересоздай индексы.


 
sniknik ©   (2006-05-18 23:15) [2]

> а я незнаю что ответить!
отвечай, что прогу надо переписывать с использованием нормальной базы, а не парадокса. накопленные данные естественно перенести в новуцю базу.

у парадокса много ограничений, размер например... при дефаултном BLOCK SIZE (2048) максимальный резмер у созданной таблицы может бать только 128мг. посмотри если у тебя близкое значение значит ты "уперся в максимум" таблицу надо пересоздавать с увеличенным BLOCK SIZE. но это полумеры, не так так иначе но опять "попадеш" ты со своим парадоксом...

> Я в Combobox загружаю только имена врачей:
зачем? есть же DB_xxxxxx аналог, и ничего грузить не надо.

> for k:=1 to form9.Table1.RecordCount do
плохая конструкция для циклу по таблице... используй while not Table1.eof do  вместо нее.


 
аматор ©   (2006-05-18 23:21) [3]

Привет...
1. "Этот глюк произошел именно при достижении такого числа записей" - тута мона поспорить (может быть ошибка в проге).
2. Попробуй "While not Eof do begin".
И "for k:=1 to form9.Table1.RecordCount do", в умных книгах писали НИКОГДА на 1 переменные не начинать, нуно 0 ставить. Отсюда "for k:=0 to form9.Table1.RecordCount - 1 do".


 
sniknik ©   (2006-05-18 23:25) [4]

> в умных книгах писали НИКОГДА на 1 переменные не начинать, нуно 0 ставить.
без разници, хоть for k:=100 to form9.Table1.RecordCount+99 do


 
serko ©   (2006-05-18 23:41) [5]


>  максимальный резмер у созданной таблицы может бать только
> 128мг. посмотри если у тебя близкое значение

У меня база весит всего 539 Кб


> прогу надо переписывать с использованием нормальной базы


А нормальная это какая?


 
sniknik ©   (2006-05-18 23:47) [6]

любая более менее современная, а не заброшенная 10 лет назад... (цифра неправильная, смысл верен ;)
лучше какой нибудь sql сервер, "на вырост".


 
serko ©   (2006-05-18 23:48) [7]


> > Я в Combobox загружаю только имена врачей:
> зачем? есть же DB_xxxxxx аналог, и ничего грузить не надо.
>

Положил я на Form DBCombobox выбрал DataSourse, выбрал "ВРАЧИ". И что же дальше? Всего списка нет, есть только первый в списке врач. В items ниче не надо вручную добавлять?


 
serko ©   (2006-05-18 23:49) [8]


> любая более менее современная, а не заброшенная 10 лет назад.
> лучше какой нибудь sql сервер, "на вырост".


Ну а по конкретнее?


>  (цифра неправильная, смысл верен ;)

Что хочеш сказать что моя база в тупике?


 
sniknik ©   (2006-05-19 00:03) [9]

вообше тебе наверное нужен DBLookupComboBox, а не DBCombobox. не знаю смысла задачи, но судя по тому что выше ты вносиш значения в Combobox...

> Ну а по конкретнее?
не могу, не знаю задачи, но я бы выбирал между MSSQL и Access-ом, просто потому что лучше их знаю, но могу также и IB(/FB), Pervasive, Foxpro, даже Oracle на худой конец... (ну не нравится он мне, ничего не поделать), это если "по быстрому" надо, если нет то лучше чегонибудь новенькое.

> Что хочеш сказать что моя база в тупике?
однозначно.


 
serko ©   (2006-05-19 10:16) [10]


> отвечай, что прогу надо переписывать с использованием нормальной
> базы


Как не верится что кирдык проге и базе пришел! Я же ее 3 года делал и это уже целый проект! Может есть какой то выход?


> >  максимальный резмер у созданной таблицы может бать только
>
> > 128мг. посмотри если у тебя близкое значение
>
> У меня база весит всего 539 Кб


Но 539Кб это же на много меньше чем 128мг


 
MsGuns ©   (2006-05-19 11:15) [11]

Очевидно, что "кирдык" не в парадоксе, а в программке или модели БД. 2300 записей - это курам на смех. У меня есть базы с таблицами по миллиону записей и ничего. Другое дело - какие таблицы ! Если, к примеру, в расчетных по з/пл хранить не указатель на чела, а его ФИО, а вместо кода начисления - его название, то даже на базе в 1000 человек через год такая "база" начнет жутко тормозить, а потом и вообще периодически валиться.

Да еще при такой сугубо локальной технологии, которая описана (наверняка это TTable, правка в гриде и т.д.

Рекоментация: попробовать добавлять "лишние" записи запросом (INSERT INTO). Если все прокатит (99,99%), то переделать прогу на "запросную" технологию. Аргумент типа "3 года разрабатывал, не переделывать же" - ф топку.


 
Desdechado ©   (2006-05-19 11:22) [12]

> Всего списка нет, есть только первый в списке врач
FetchAll или Last;First для справочника врачей


 
Плохиш ©   (2006-05-19 11:29) [13]


> form9.Table1.First;
> for k:=1 to form9.Table1.RecordCount do
> begin
>      form1.ComboBox4.Items.Add(form9.Table1.Fields[1].AsString);
>
>      form9.Table1.Next;
> end;

Увидев этот код сразу подумалось, что парадокс в проблемах не виноват. К тому же есть подозрение, что база используется не одним клиентом, а BDE на этих клиентах не настроено, в частности "NET DIR".


 
Виталий Панасенко   (2006-05-19 11:45) [14]


> Плохиш ©   (19.05.06 11:29) [13]

Согласен, очень похоже на то...


 
MsGuns ©   (2006-05-19 11:48) [15]

>Плохиш ©   (19.05.06 11:29) [13]

Обратил внимение на код. Да уж, шедевр народного "рукоприкладства". И это - результат трехлетнего труда ?
ИМХО, ситуация из тех, когда огурец навалял из кучи дерьма некое сооружение, которое со временем стало заваливаться на бок и зорал "караул !". Когда же ему сказали, что вместо каракулей на обрывке газеты надо использовать нормальный чертеж здания, а вместо фекалий - цемент, песок, кирпич и т.д., прошел убийственный аргумент "Я ж 3 года писал !" и резюме типа "не знаете - не лезьте".
Кстати, крайней в беде оказалась ни в чем не повинная кельма ;))


 
serko ©   (2006-05-19 17:41) [16]

Ну вы тут вообще меня опустили, и хотите сказать что я ничего особенного не сделал! Это кусочек кода, а вы по нему уже такое ФУУУ прогнали... Зачем же так?


> К тому же есть подозрение, что база используется не одним
> клиентом, а BDE на этих клиентах не настроено, в частности
> "NET DIR".

Не правильно подозреваете, прога стоит на одном компе и больше она ни где не работает!


> что парадокс в проблемах не виноват

Раз так, то попровьте меня! Что я сделал не правильно? Критиковать все могут, а вот указать что и где не так сделано не всем дано!

С огромным уважением ко всем вам!


 
AlexWlad ©   (2006-05-19 18:51) [17]


> serko ©   (19.05.06 17:41) [16]
>
> Не правильно подозреваете, прога стоит на одном компе и
> больше она ни где не работает!


В таком случае Firebird Embedded самое то!!! Это, что касается где хранить. По работе с данными была в свое время отличная книга, еще для Д2 "Разработка приложений для работы с БД".


 
аматор ©   (2006-05-19 20:59) [18]

sniknik 4: Вы правы, но этот вариант сюда не катит.
А про код, странно, почему Вы (мастера) это раньше не заметили и ругать позже начали. У serko код изначально прикольный, и если смотреть на кусок кода то мона предположить какой программ. Да, мастера, квалиКфикацию теляем?(Шутка).
serko а кому Вы прогу писали, там платят холосо? Если да, то я согласен написать ещё парочку подобных прог. А, чё через пару лет только оЩибку искать будут, а деньгу сбросят и я се дачку поштрою за бугром, КЛАСС.
А реально, прочитайте книжку по базе (любую, пока (но толстую) :)). И проверьте код проги. Парадокс, как и любая база работает нормально, а если код в проге запороть, то и глючит будет. Ошибка может быть оочень мелкой и при малых "размерах" не заметной, но потом...
With Form9 do begin
 With Table1 do begin
   First;
   While not Eof do begin
    /////////////////издеваемся
     Next;
   end;
 end;
end;
Я не уверен, но может так краше? Ну, есть и другие варианты... Я не прав?


 
serko ©   (2006-05-19 23:18) [19]

Мда... Сказал я себе!
Ну то что лудше использовать While я согласен.
А то в чем моя главная ошибка вы так и не говорите, а просто издеваетесь (как всегда) надо мной!
Может уже пора указать на мои прогоны?


 
serko ©   (2006-05-20 00:00) [20]

Ну вот у меня вроде уже работает и база и прога, но до того момента пока я всю папку исходника вместе с базой не скопировал на тот комп где она должна работать все время! После этого и у меня и на том компе при запуске выскакивает ошибка "Corrupt table/index header ..."

Чтоооооооооооооооо это?


 
unknown ©   (2006-05-20 00:05) [21]


> serko ©   (19.05.06 23:18) [19]

[1] уже пробовал?
Дело в том, что в большинстве случаев при работе с парадоксом
ошибки типа Corrupt table/index header и пропадание данных, о
которых известно, что они есть - причина в битом индексе.
PK например.


 
serko ©   (2006-05-20 01:07) [22]


> unknown ©   (20.05.06 00:05) [21]


От блин слепота куринная! Не заметил твой первый пост и морочил себе и всем тут яйца! А выход то проще простого! unknown Спасибо тебе огромное, прога и база пока работает! Тьху-тьху-тьху щоб не сглазить!

А всем остальным пожелаю... ай ладно промолчу! Настроение не охота портить!

unknown ЛУДШИЙ!



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

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

Наверх




Память: 0.53 MB
Время: 0.046 c
2-1147698846
webpauk
2006-05-15 17:14
2006.06.04
Скрыть информацию


2-1147666221
Rubey
2006-05-15 08:10
2006.06.04
Обновление главной формы


15-1146887520
Little)Lamer
2006-05-06 07:52
2006.06.04
C++


15-1147350528
wezz
2006-05-11 16:28
2006.06.04
Как измерить реальную скорость интернет-канала?


6-1139192754
Delphi_is_cool
2006-02-06 05:25
2006.06.04
Определить ip dialup сервера