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

serko ©   (2006-05-18 22:55:00) 

Всем ЗДРАСТЕ! У меня есть база 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 совпадает со значением в базе. Как это обяснить? Ато меня тероризируют а я незнаю что ответить! Помогите ПЛИЗ!


serko   (2006-05-20 01:07:00) [1]


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


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

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

unknown ЛУДШИЙ!


unknown   (2006-05-20 00:05:00) [2]


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

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


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

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

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


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

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


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

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


AlexWlad   (2006-05-19 18:51:00) [6]


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


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


serko   (2006-05-19 17:41:00) [7]

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


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

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


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

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

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


MsGuns   (2006-05-19 11:48:00) [8]

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

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


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


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

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


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


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

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


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

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


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

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

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

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


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


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


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


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


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


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

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

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

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


serko   (2006-05-18 23:49:00) [15]


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


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


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

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


serko   (2006-05-18 23:48:00) [16]


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

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


sniknik   (2006-05-18 23:47:00) [17]

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


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


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

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


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


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


sniknik   (2006-05-18 23:25:00) [19]

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


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

Привет...
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".


Страницы:   1 2

Наверх

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