На чтение 4 мин. Просмотров 113 Опубликовано 15.12.2019
Группа: Участник
Сообщений: 70
Возможно ли восстановление таблицы БД Paradox?
Видимо, некорректно была завершена работа с БД, в результате чего при попытке открытия таблицы вылазит мессага «corrupt table/index header»
Есть ли средства ремонтирования таблиц Paradox’a?
Группа: Администратор
Сообщений: 1190
Возможны 2 ситуации:
1 попортились индексы (индексные файлы .px .XG0, .XG1, YG0 . )
2 повредились сами файлы таблиц ( .db)
1 Сначала попробуйте сделать переиндексацию.
То есть удалите все индексные файлы и проиндексируйте таблицы.
Для этого удобнее всего написать отдельную программу,
которая это делает (через Table1->AddIndex() ).
2 Средство для ремонта таблиц Paradox — сам Paradox
Например Paradox 9, в нем команда «Rebuild»
Но может полностью и не восстановить.
Конечно, перед любыми подобными действиями,
делайте копию базы данных.
Группа: Участник
Сообщений: 247
Еще в Paradox 4 под Dos я делал так.
Удалить, добавить индекс.
Если не помогало.
Делаешь такую-же таблицу и по записям копируешь
начиная с первой записи до ошибки,
потом с первой записи прыгаешь на последнюю и копируешь с
с последней записи до ошибки.
Когда мне это надоело сделал принудительную архивацию таблиц в конце работы программы.
Именно из за этого я бросил рабуту с Paradox.
Очень жаль мне он нравился.
Как можно его отвязать? Удалить сам файл? Как он называется??
Как программно восстановить индексы? Саму ошибку программно поймать возможно.Как сделать, чтобы их вообще не было — и ничего не портилось бы наверно?
В одном старом проекте после 6 лет нормальной работы началась такая же херьня.Данные в Paradox-е не нужны, так как это временное хранилище, из которого далее данные ложатся на SQL Server. Но на клиентах нужны работающие БД на Paradox-е. Как программно восстановить индексы? Саму ошибку программно поймать возможно.Как сделать, чтобы их вообще не было — и ничего не портилось бы наверно?
Hi,
When I try to open one of my paradox tables with Database Desktop i get the following error:
«Corrupt table/index header».
Also when I try to add a new record to that table I get «Key violation».
Anyone know what to do?
Premium Content
Premium Content
- https://www.experts-exchange.com/questions/20970230/Corrupt-table-index-header.html copy
You can try to repair the data with a third party tool like Chimney Sweep.
Ok, don’t have the money to buy it!
Is there any freeware product or any other way I can go?
I don’t know of any free tools; although, there may be some. I thought the 30 day evaluation was free but I see that it isn’t. You could try some of the following:
1) Restore a backup, if you have one — before running any Paradox applications use the repair tool (Paradox repair utility).
2) Open the table using restructure, click PACK and then save. If you can do that, try the repair tool again.
3) Create a new table with the same structure and attempt to copy your data into it using ADD. Then run the repair against the new table.
Ensure you’re charging the right price for your IT
Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!
There is also a website that has some bde repair tools; although, I don’t know how well they work.
They have a Paradox Table Repair Utility.
Whatever you decide to do, I would make sure you have a backup.
Thanks for your help, bwdowhan.
At last I found a data repair utility at Torry’s delphi pages.
The app I found was: Pdxrbld — Paradox tables check/repair utility v.4.41b.
I tried it and it work just fine.
bwdowhan post an comment and you will get the points.
It’s nice when things work. I’m glad you found your solution!
I have got some information from one site.
Other third-party tools (freeware and shareware) for repairing Paradox
tables are available at:
http://www.bdesupport.com/tools.htm
IT issues often require a personalized solution. With Ask the Experts™ , submit your questions to our certified professionals and receive unlimited, customized solutions that work for you.
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
1 |
|
28.11.2011, 11:01. Показов 8000. Ответов 15
поместил на форму элемент table1 в свойстве TableName прописал путь к фалу Foxpro таблицы (*.dbf)
0 |
568 / 291 / 12 Регистрация: 28.01.2011 Сообщений: 1,326 |
|
28.11.2011, 11:12 |
2 |
Отказаться от использования dbf.
1 |
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
28.11.2011, 11:17 [ТС] |
3 |
Друг я dbf не использую для сохранения но для обработке
0 |
1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,357 |
|
28.11.2011, 11:24 |
4 |
Очень похоже на то, что алиас, который Вы используете для TTable, указывает на БД не того типа (у фокспро свой тип насколько помнится). Добавлено через 3 минуты
1 |
568 / 291 / 12 Регистрация: 28.01.2011 Сообщений: 1,326 |
|
28.11.2011, 11:28 |
5 |
А я бы для транзита xml использовал. Хороший тон в крупных проектах.
0 |
1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,357 |
|
28.11.2011, 11:41 |
6 |
xml – полный отстой и тормозищи ! Я бы того кто его выдумал (а заодно и изобретателей хатмеля) повесил на первой же березе
0 |
568 / 291 / 12 Регистрация: 28.01.2011 Сообщений: 1,326 |
|
28.11.2011, 11:55 |
7 |
Ну знаешь я не замечал тормозов. Может потому что не гонял большие объемы через него.
0 |
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
28.11.2011, 12:36 [ТС] |
8 |
А я бы для транзита xml использовал. Хороший тон в крупных проектах. есть 2 прогрмаы использующие dbf програмы я переделовать не имею права Добавлено через 1 минуту
Очень похоже на то, что алиас, который Вы используете для TTable, указывает на БД не того типа (у фокспро свой тип насколько помнится). Это может быть вызвана тем что таблица включена в базу даных а я пытаюсь получить доступ обходя фаил dbc напрямую к файлу таблицы?
0 |
714 / 402 / 33 Регистрация: 04.10.2009 Сообщений: 1,686 |
|
28.11.2011, 13:13 |
9 |
Скорей всего, вы пытаетесь получить доступ к файлу в момент его использования. Завершите те проги.
0 |
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
28.11.2011, 13:23 [ТС] |
10 |
Скорей всего, вы пытаетесь получить доступ к файлу в момент его использования. Завершите те проги. не с этим все нормально
0 |
1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,357 |
|
28.11.2011, 15:01 |
11 |
Формат dbf имеют множество “баз”, при этом далеко не все они имеют стандарный формат dBase III, IV… Вы же в алиасе указали скорее всего STANDARD, вот и получили..
0 |
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
28.11.2011, 18:14 [ТС] |
12 |
Вы же в алиасе указали скорее всего STANDARD, вот и получили.. не ttfoxpro указал
0 |
1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,357 |
|
28.11.2011, 18:21 |
13 |
В алиасе (BDE Administrator), а не в TTable !
1 |
6 / 6 / 0 Регистрация: 06.11.2011 Сообщений: 36 |
|
29.11.2011, 09:04 |
14 |
wason,
1 |
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
29.11.2011, 14:43 [ТС] |
15 |
В алиасе (BDE Administrator), а не в TTable ! все верно, создал алиас проблема ушла но это такой ужас Добавлено через 1 минуту
wason, не я заходил с foxpro таблица была целая
0 |
MsGuns 1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,357 |
||||
30.11.2011, 11:46 |
16 |
|||
А BDE – это вообще ТАКОЙ УЖАС !!!
0 |
← →
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 ЛУДШИЙ!
iAlexander |
Отправлено: 28.11.2003, 19:00 |
Дежурный стрелочник Группа: Участник |
Возможно ли восстановление таблицы БД Paradox? Видимо, некорректно была завершена работа с БД, в результате чего при попытке открытия таблицы вылазит мессага “corrupt table/index header” Есть ли средства ремонтирования таблиц Paradox’a? |
Admin |
Отправлено: 29.11.2003, 00:05 |
Владимир Группа: Администратор |
Возможны 2 ситуации:
1 попортились индексы (индексные файлы .px .XG0, .XG1, YG0 ….)
1 Сначала попробуйте сделать переиндексацию.
2 Средство для ремонта таблиц Paradox — сам Paradox
Конечно, перед любыми подобными действиями, |
Nick |
Отправлено: 06.12.2003, 10:00 |
Машинист паровоза Группа: Участник |
Еще в Paradox 4 под Dos я делал так. Удалить, добавить индекс. Если не помогало.
Делаешь такую-же таблицу и по записям копируешь Когда мне это надоело сделал принудительную архивацию таблиц в конце работы программы.
Именно из за этого я бросил рабуту с Paradox. |
bookvar |
Отправлено: 08.12.2003, 01:07 |
Не зарегистрирован
|
Есть утилита специально для таблиц Paradox. Посылаю в архиве. Лечит на раз. Есть только с ней одна проблема. Если заголовок поврежден может обнулить таблицу до 2 к. Я для такого случая писал программульку которая считывала таблицу как бинарный файл и проходила по блокам собирая информацию, создавая новую таблицу, но это только для совсем критических случаев. |
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS
Contact US
Thanks. We have received your request and will respond promptly.
Log In
Come Join Us!
Are you a
Computer / IT professional?
Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts - Keyword Search
- One-Click Access To Your
Favorite Forums - Automated Signatures
On Your Posts - Best Of All, It’s Free!
*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Students Click Here
Corrupt table/index header – can this be fixed?Corrupt table/index header – can this be fixed?(OP) 24 Oct 06 10:16 I am trying to open a Paradox database and it will not allow me to open the database. The error message is: UNABLE TO OPEN TABLE CORRUPT TABLE/INDEX HEADER Is there any way possible to fix this? Thanks, Red Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts. |
Join Tek-Tips® Today!
Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.
Here’s Why Members Love Tek-Tips Forums:
- Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More…
Register now while it’s still free!
Already a member? Close this window and log in.
Join Us Close