Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.07.2006, 08:55
vinni vinni вне форума
Начинающий
 
Регистрация: 26.01.2006
Сообщения: 135
Репутация: 10
По умолчанию Ошибка в Dbf

Народ, помогите плиз. У меня прога производит контроль правильности названий и типов полей в указанной папке во всех DBF-файлах. Фсе эти файлы бес проблем открываюцца в фоксе, а при работе проги вылетает ошибка: Corrupt table/index header. Из за чиво это, подскажите плиз. Заранее спасибо.
ЗЫ. На фсякий случай код:
flist:=Table1.FieldDefs;
flist_orig:=Table_Original.FieldDefs;
fcount:=Table1.FieldCount;
fcount_orig:=Table_Original.FieldCount;

for i:=0 to (fcount_orig-1) do
begin
fl:=FALSE;
for j:=0 to (fcount-1) do
if flist[j].Name=flist_orig[i].Name then
begin
fl:=TRUE;
if flist[j].DataType<>flist_orig[i].DataType then
begin
WriteToLog('<p>Выявлено несоответствие в типе поля: '+flist[j].Name+'</p>');
end;
if flist[j].Size<>flist_orig[i].Size then
begin
WriteToLog('<p>Выявлено несоответствие в размерности поля '+flist[j].Name+'</p>');
end;
end;
if not(fl) then
begin
WriteToLog('<p><font color="#FF0000" face="Arial, Helvetica, sans-serif"><strong>Отсутствует поле </strong></font>'+flist_orig[i].Name+'</p>');
end;
end;
memo1.Lines.LoadFromFile('LOG.html');
Ответить с цитированием
  #2  
Старый 03.07.2006, 09:36
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Скорее всего у файлов стоит признак индексации, а индексных файлов, понятных Delphi, нет

ЗЫЖ Если мне не изменяет память это 28 или 29 байт в dbf файле начиная от начала, если его сделать 00, то все будет Ок

Последний раз редактировалось Aristarh Dark, 03.07.2006 в 09:45.
Ответить с цитированием
  #3  
Старый 03.07.2006, 11:30
vinni vinni вне форума
Начинающий
 
Регистрация: 26.01.2006
Сообщения: 135
Репутация: 10
По умолчанию

и 28 и 29 байты одинаковые в файла, по которым вылезает ошибка, и по нормальным. А чо за признак индексации и где ево смотреть?
Ответить с цитированием
  #4  
Старый 03.07.2006, 11:55
User32 User32 вне форума
Прохожий
 
Регистрация: 03.07.2006
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от vinni
и 28 и 29 байты одинаковые в файла, по которым вылезает ошибка, и по нормальным. А чо за признак индексации и где ево смотреть?

А теперь попорядку.
Вопервых ошибка что утебя вылезает говорит о том что у твоеё базы есть привязанный индексный файл (как правило с темже именем, но по идеи можно любой тип индекса с любым именеи пристегнуть к любой базе - я имею ввиду xBase, dBase, Clipper, FoxPro). как это лечится? да просто, ты говориш в FoxPro открывается без проблем, так просто тамже и удаль индекс той базы и сделай Pac - и делов то. Сейчас подрукой нет Фокса да и работал в последни раз с ним я уже дано, попунктам как делаетсе напамьть нескажу - надо смотреть.

Ну а если хочеш с Фоксовыми базами и его индексами в Делфи работать, то используй Halcyon 6хх .

Ну а поповоду заголовка DBF- что где и как смотри тут http://delphi.olympus.ru/dk/helloword/dbheader.htm
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter