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

Вниз

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

Наверх




Память: 0.51 MB
Время: 0.037 c
15-1146928718
ArtemESC
2006-05-06 19:18
2006.06.04
SetLength, Trim в BP


1-1145987180
vidiv
2006-04-25 21:46
2006.06.04
Русские буквы и RichEdit 2.0


3-1144221294
RomanH
2006-04-05 11:14
2006.06.04
Репликация данных


1-1146036679
leonidus
2006-04-26 11:31
2006.06.04
Как в TListView отобразить больше 32000 записей


11-1127710464
DmiSb
2005-09-26 08:54
2006.06.04
Как нарисовать кнопочку в EditBoxe





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский