На чтение 4 мин. Просмотров 101 Опубликовано 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.
-
08.06.2012, 14:17
#1

Разбирающийся
corrupt table/index header
При выполнении Append32.exe на Reorders.db вылетает corrupt table/index header. Чем и как лечить?
-
08.06.2012, 16:58
#2

Да, вы ЕЁ и видите.
Всеж очевидно. Сохранить текущую бд и реиндексацией для начала.
You see ass…

Если проблему можно решить за деньги, то это не проблема, это расходы. Еврейская мудрость.
-
08.06.2012, 20:47
#3

Сведущий
Сообщение от Admin
реиндексацией для начала
Да не, это же енддей, тут реиндексация вообще ни при чем.
Насколько мне известно, Reorders.db таблица некритичная. Как я понял, кипер туда вносит изменения о факте редактирования стола. То есть только сам факт, а изменения вносит в соответствующие таблицы — dcheck, rcheck…
Попробуйте открыть эту дбшку в каком-нибудь редакторе, и посмотреть содержание. Возможно, найдете там мусор — кракозябры или что-то такое, что разительно отличается от предыдущих записей. Эти строки можно удалить — восстановлению уже не подлежат.
Если и это не спасет, то просто прогрузите день без этой таблицы (перенесите ее куда-нибудь, но не удаляйте). Скорее всего, все должно заработать. Проверьте отчеты, я думаю, все сойдется.
Дерзайте, удачи.
-
08.06.2012, 23:04
#4

Да, вы ЕЁ и видите.
Сообщение от Valera
тут реиндексация вообще ни при чем.
C чего бы не причем? Реиндексация ващето не только манагера имеется, если кто забыл.
You see ass…

Если проблему можно решить за деньги, то это не проблема, это расходы. Еврейская мудрость.
-
18.06.2012, 12:45
#5

Разбирающийся
помогите пожалуйста. все методы какие знаю перепробовал.
-
18.06.2012, 14:13
#6

Разбирающийся
С файлом во вложении делали что-нибудь? Он пустой. Файла в изначальном состоянии нет?
-
18.06.2012, 20:21
#7

Разбирающийся
-
19.06.2012, 00:56
#8

Разбирающийся
И здесь ничего не восстанавливается.
-
19.06.2012, 10:57
#9

Разбирающийся
-
19.06.2012, 11:17
#10

Да, вы ЕЁ и видите.
Сообщение от mcmaster
И что же делать?
Да собственно вариантов 2.
1. Ничего, а расход вбить в хаус в ручную.
2. По чекам восстанавливать день, но если таковая возможность имеется.You see ass…

Если проблему можно решить за деньги, то это не проблема, это расходы. Еврейская мудрость.
|
18 / 18 / 8 Регистрация: 21.04.2010 Сообщений: 110 |
|
|
1 |
|
|
28.11.2011, 11:01. Показов 7702. Ответов 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,356 |
|
|
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,356 |
|
|
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,356 |
|
|
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,356 |
|
|
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,356 |
||||
|
30.11.2011, 11:46 |
16 |
|||
А BDE — это вообще ТАКОЙ УЖАС !!!
0 |
…Вы сами перестаете слышать и понимать других.
очень жаль
Кто перестаёт слышать и понимать — это ещё вопрос.
Я же хочу донести вполне очевидную вещь:
если в некой системе совместно взаимодействуют два элемента, один из них неизменяем (каспер), второй представлен двумя различными версиями (РИК) и при работе первого элемента системы с одним из вторых происходит сбой в работе одного из вторых компонентов данной системы, то причина здесь в этом втором компоненте системы взаимодействий. Это обычная чёткая логика, и не понимаю, почему Вы обижаетесь на это.
А что если применить эту «логику» к Касперскому и прочим, тем более что никаких вирусов по факту там нет и не было!
Наши программисты, как и все, пишут код программы на языке высокого уровня, компилятор затем компилирует в исполняемый код, который и проверяют антивирусы и отдельные куски этого кода ими воспринимаются как вирусы.
Программист никогда не смотрит непосредственно исполняемый код и не контролирует его.
Почему именно так работает Bilder и допускает создание исполнительного кода, на который кидаются антивирусы…большой вопрос.
Почему обычные dbf и mdx файлы иногда стали восприниматься как вирусы — вопрос из той же серии.
Мы понимаем, что это неудобно пользователям, но как с этим бороться пока неясно.
То что можем — мы делаем, некоторые файлы пересобираем и до поры до времени они становятся «безопасными». Это конечно же полумеры, но ничего лучшего пока не придумали.
И конечно же, нужна тонкая правильная настройка антивируса.
А ведь эти антивир-программы коммерческие и почему они должны мешать нормальной работе других программ?
Скорее всего, если обратиться к ним с конкретной проблемой, то он смогут указать правильные настройки своих программ, но никто этого, конечно, не делает.
Так что, если вникнуть в вопрос глубже и руководствоваться не только пожеланиями, но и реальными возможностями, имеющимися в нашем распоряжении, то совсем даже не все здесь вполне очевидно и вашу логику назвать четкой очень затруднительно.
На чтение 4 мин. Опубликовано 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.
Ошибка после горячего обновления
![]()
пользователь
Регистрация: 07.02.2020
Добрый день!
После последнего горячего обновления у нас перестала работать Зарплата.
Выдает ошибку: corrupt table/index header #8961 ($2301)
Не формирует Платежную ведомость, Расчет зарплаты, справки 2-НДФЛ, 6-НДФЛ …
В итоге ничего не получается!
- 233 просмотра
![]()
пользователь
Регистрация: 07.02.2020
Доброе утро!
Господа разработчики, в какой теме надо задать вопрос, чтобы вы на него ответили?
Зарплата так и не работает, а скоро аванс…
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
![]()
дилер
Регистрация: 01.12.2005
Полностью ошибку напишите, с указанием места ошибки. Тогда быстрее и точнее будет ответ.
Могу подключиться по AnyDesk +79255074282
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
![]()
разработчик
Регистрация: 29.02.2012
Добрый день!
Это, скорее всего, проблема с файлом, возможно с несколькими. Попробуйте поменять файл, на который указывает ошибка, на файл из копии базы, сделанной в то время, когда ошибки еще не было. После замены запустите бланк обновления базы данных.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
![]()
пользователь
Регистрация: 22.12.2014
После последнего обновления вдруг «сломалась» Зряплата/карточка начислений и удержаний.
09 января 2023 года рассчитал зряплату за декабрь 2022 года — все было хорошо, а сегодня ВДРУГ:
Открывает карточку начислений и удержаний нормально, но затем при её закрытии (даже без редактирования) матерится (см. вложение) и затирает ВСЕ данные по этому раб-у. Он исчезает после этого даже из «архива» расчётной ведомости (при выводе старых результатов расчёта).
Что это может быть и как с этим бороться?
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
![]()
дилер
Регистрация: 01.12.2005
Из меню программы вызвать общие настройки:

В общих параметрах, для спецкарточки поставьте ДА:

Не успели исправить всё.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
![]()
пользователь
Регистрация: 22.12.2014
Ок. Спасибо. Начну пользоваться Спецкарточкой пока.
Но обычная для меня удобней — мышкой щёлкать меньше приходится. И вообще, на мой взгляд, чем меньше надо щёлкать мышкой — тем лучше программа (и программист, соответственно!). А у ИБ в последнее время, наоборот, в бланки всё чаще включаются дополнительные «вкладки», до последнего уровня которых рука устаёт мышкой щёлкать. Мониторы сейчас у всех широкие — наверняка можно разместить многое сразу на главной странице бланка (а не в открывающихся вкладках).
Предлагаю установить программистам премию за каждый «сэкономленный» щёлк мышкой (и выговор/штраф за их необоснованное увеличение).
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
|
|
|
|

«Corrupt table/index header» при запросе
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
|
|
Добрый вечер. Имеется база данных (DBaseIV/BDE). Поля в базе создаются динамически (в зависимости от настроек программы). База подключается и отображается в сетке на форме (среда разработки Borland Delphi 7). При попытке выполнения запроса к этой базе выдается ошибка: «Project … raised exception class EDBEngineError with message ‘Index does not exist. Corrupt table/index header. Так вот. Сам файл я проверял открытием в программе просмотра БД. Все с ним в порядке (в программе БД тоже отображается нормально). Индекс для этой БД тоже есть («file.cdx»). Каждый день после работы с проектом я делаю бэкап последнего. Открыл копию от 16.10 и запустил скомпиленый exe. Все работает. Перекомпилил эту копию — та же ошибка. В чем может быть дело? |
|
Anatoly Podgoretsky |
|
|
file.dbt это не файл «базы» а мемо поля |
Bas |
|
|
Цитата ReLock @ 20.10.05, 16:50 В чем может быть дело? В Цитата ReLock @ 20.10.05, 16:50 ‘Index does not exist Как создаешь, как удаляешь? |
|
ReLock |
|
|
Цитата Anatoly Podgoretsky @ 20.10.05, 17:09 file.dbt это не файл «базы» а мемо поля file.dbt — это просто шаблон. Я могу написать «file.xxx». Это дела не меняет. У меня в структуре при создании БД указан тип: DBASEIV. Я специально поменял расширение, чтобы небыло привязки иконки к DBF. Хотелось сделать свою иконку. Так сказать: DBT — «Database Tournament». to BAS:
cIndex:= ChangeFileExt(ExtractFileName(TourFName),’.cdx’); DataSet.Active := True; SetIndexTable(cIndex,’LNAME’,’LNAME + FNAME’,’Tables’,DataSet, True); Процедура индексации:
procedure SetIndexTable(FIndex,NIndex,EIndex,DIndex: String; FDataSet: THalcyonDataSet; SortAscending: Boolean); var SortDir: TgsSortStatus; FName: String; begin FName := AppPath + DIndex + » + FIndex; if FileExists(FName) then DeleteFile(FName); with FDataSet do if Active then begin if SortAscending = True then SortDir:= halcn6db.Ascending else SortDir:= halcn6db.Descending; IndexFiles.Clear; IndexOn(FIndex,NIndex,EIndex,»,halcn6db.Duplicates,SortDir); IndexFiles.Add(FIndex); IndexName := NIndex end; end; Сам запрос:
Query.DatabaseName := MainForm.DataSet.DatabaseName; SQLText := SQLText + ‘SELECT ID,NUMBER,STATE,LNAME,FNAME,SNAME,VIRTUAL,TPOINTS ‘; SQLText := SQLText + ‘FROM «‘ + MainForm.DataSet.TableName + ‘» ‘; SQLText := SQLText + ‘WHERE STATE = 1 ‘; SQLText := SQLText + SortVariant; Query.SQL.Clear; Query.SQL.Add(SQLText); Query.Open; Добавлено 21.10.05, 11:57 Сообщение отредактировано: ReLock — 21.10.05, 11:59 |
|
ReLock |
|
|
Вообщем разобрался с этой проблемой. Только есть некоторые непонятные вещи. Может кто-нибудь сможет объяснить эти явления? ❓ Из полного имени файла конфигурации, который лежит в другом каталоге (имя файла конфигурации и имя БД идентичны, просто лежат в разных каталогах), вытаскивается только имя и меняется расширение на CDX:
cIndex:= ChangeFileExt(ExtractFileName(TourFName),’.cdx’); База данных становится активной:
DataSet.Active := True; База индексируется:
SetIndexTable(cIndex,’LNAME’,’LNAME + FNAME’,’Tables’,DataSet, True); После этих действий в каталоге с базой данных создается индекс для этой БД и в заголовке БД-файла выставляется признак, что «используется индекс». База индексируется. Но в этом случае при попытке выполнить к этой БД запрос — выходит вышеописанная ошибка. Если же сделать так: Формирую новое расширение (полный путь остается):
cIndex:= ChangeFileExt(TourFName,’.cdx’); База данных становится активной:
DataSet.Active := True; База индексируется:
SetIndexTable(cIndex,’LNAME’,’LNAME + FNAME’,’Tables’,DataSet, True); После этих действий в каталоге с файлом конфигурации создается индекс для БД и в заголовке БД-файла НЕ выставляется признак, что «используется индекс». База индексируется. И только В ЭТОМ случае к базе можно применить запрос. ❓ ❓ ❓ |
|
ReLock |
|
|
— если у базы расширение <DBF>, то можно смело делать для нее индекс в том же каталоге. К заголовке файла выставится признак, что база инпользует индекс и к ней можно делать любые запросы. — если же у базы расширение, отличное от DBF (например, XXX), то при создании индекса для этой базы в том же каталоге (в заголовок файла опять же выставится признак, что база использует индекс) — к этой базе нельзя применить запрос (BDE ругается на заголовок базы и индекса, мол поврежден). Для этого случая единственным решением будет создать для базы индекс в другом каталоге (в заголовок файла не запишется, что база использует индексы, зато к ней можно применить любые запросы). Вот такая вот кухня. Добавлено 27.10.05, 09:55 |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Базы данных
- Следующая тема
[ Script execution time: 0,0364 ] [ 16 queries used ] [ Generated: 28.01.23, 17:35 GMT ]
Добрый вечер!
Пользуюсь переносной версией программы, установлена на внешнем жёстком диске.
В результате выхода из строя USB-кабеля питания внешнего жёсткого диска произошло его отключение во время сеанса работы с Домашней Бухгалтерией. После подключения жёсткого диска с помощью другого USB-кабеля, был завершён сеанс работы с программой. При выходе из программы всегда выполняется автоматическое создание резервной копии на этом же жёстком диске.
При следующем запуске программы было выдано сообщение об ошибке и предложено произвести восстановление из резервной копии. Однако, при выборе последнего сохранённого файла с резервной копией для восстановления выдаётся сообщение: «Файл ********_******.hbb повреждён.»
При восстановлении из более ранней копии программа запускается, но при попытке возврата долга должником выдаётся сообщение: «Corrupt table/index header. File: X:HomeBuh5BaseListMyCikl.DB»
Запускал CategoryRestore.bat, но результат тот же. После запуска CategoryRestore.bat при закрытии программы появилось сообщение: «При сжатии базы данных произошла ошибка. DeletedItems.DB ModifiedItems.DB ListMyCikl.DB Sync.DB DeletedItemsWeb.DB ModifiedItemsWeb.DB RecordsMap.DB SyncWeb.DB»
Что ещё можно попытаться сделать для восстановления нормальной работы программы?
Существует ли какая-то возможность восстановления файла с резервной копией базы ********_******.hbb? Как это можно сделать?
Заранее благодарю.
С уважением.
← →
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 ЛУДШИЙ!
![]()
![]()




Ура! Все разобрал. Короче дело вот в чем: