powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пытаюсь открыть БД, а там "not a database file"
21 сообщений из 21, страница 1 из 1
пытаюсь открыть БД, а там "not a database file"
    #32441346
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь открыть БД, а там "not a database file"...
Что делать?
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441362
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либа таблица не той версии (типа создана в VFP открываешь FPD\FPW). Либа порчен заголовок. Нужно травить на нее DBF Fixer какой-нить
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441365
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о. Натпример тут - http://www.foxclub.ru/sol/index.php?act=view&id=23]
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441850
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Говорит, ресурс не найден... :(
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441853
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В смысле ссылка
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441900
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну не аолучаеца у мя тут сцуклу поставить :)
http://www.foxclub.ru/sol/index.php?act=view&id=23
скопируй и будет щастье :)
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441913
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дак и вхожу в Интернет Эксплорере - говорит нету такого ресурса (это тоже не работает http://www.foxclub.ru/sol/index.php)
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32441954
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
крикни мыло, я те его залью
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442004
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кричу - Dnv@r72.nalog.ru
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442015
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А он вообще большой ?
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442017
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ушло. Архиф на 18 кил. :)
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442032
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторРаботет так: запускается с ключем /s на пока еще неповрежденном dbf.
А если он уже накрылся, все равно поможет?
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442061
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тя умоляю! :)) а попробовать уже!? тока копию сделай резервную :)
ну и на Яндекс зайди и набери DBF Fixer - запутаешься скачивать фсего отофсего :)
http://www.yandex.ru/yandsearch?text=DBF+fixer&stype=&nl=0
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442412
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сохранила заголовок из этого же порченого файла -
?Files processed - 1
?Files checked - 1
?Files tried to fix - 0
?Wrong field type errors - 0
?Total errors found - 0
?No saved headers - 0
?Warnings - 0
?Unrecovered files - 0
?All Ok!


Все по-старому осталось - файл не открывается :(
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442600
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Все по-старому осталось - файл не открывается
Значит не совпадают версии файла и вашего фокса
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442631
Фотография Андрей Давыдов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 coolkenga
Восновоном dbf ломаются из-за того что не правильно заканчивается
запись последней записи в файл:

dbf заканчивается: запись+CHR(27)
Вылечить можно в текстовом редакторе:
Удалить последнюю недописанную запись и добавить CHR(27)
Отркыть с пом фокса и PACK для простановки правильного кол-ва записей в заголовке.
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442633
Фотография Андрей Давыдов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри CHR(26)
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32442661
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...Предыдущий совет должен сработать. Но уж если нет (всякое случается) - dbf-ники хорошо сжимаются, поэтому (если он не большой и не конфиденциальный) - заrarьте его и киньте мне на trnikolaj@yandex.ru - на низкоуровневом доступе попытаюсь побороть и в виде восстановленного VFPdbf-ника Вам вышлю. Раньше неоднократно получалось, вроде.
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32444186
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделала проще - новую таблицу и перебила 27 записей :)
Однако, файл тот открывался VFP и DBFFixer там в конце поставил этот самый CHR(26), что все равно не помогло БД открыться в FP
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32444270
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А версия фокса какая?
...
Рейтинг: 0 / 0
пытаюсь открыть БД, а там "not a database file"
    #32444334
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если файл открылся в VFP, то это значит, что физическое количество записей перестало соответствовать количеству записей указанному в заголовке таблицы (байты с 4 по 7).

Это очень распространенная ошибка. Обычно возникает при сбое питания в момент добавления записи (счетчик записей увеличился, но физически запись еще не вставилась)

В принципе, это можно исправить

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
* В качестве параметра передается дескриптор открытого файла
* по FOPEN( "MyTable.DBF" , 2 )
LPARAMETERS tnFD

* Определяю количество записей записанное в заголовке файла
* байты с  4  по  7 
LOCAL lnReccount
=FSEEK(m.tnFD, 4 )
lnReccount=ASC(FREAD(m.tnFD, 1 ))+;
			 256 *ASC(FREAD(m.tnFD, 1 ))+;
			 256 * 256 *ASC(FREAD(m.tnFD, 1 ))+;
			 256 * 256 * 256 *ASC(FREAD(m.tnFD, 1 ))
* Определяю позицию, с которой начинается собственно данные (первая запись)
* байты с  8  по  9 
LOCAL lnDataStart
lnDataStart=ASC(FREAD(m.tnFD, 1 ))+ 256 *ASC(FREAD(m.tnFD, 1 ))
* Определяю количество символов в одной записи, включая метку на удаление
* байты с  10  по  11 
LOCAL lnRecLength
lnRecLength=ASC(FREAD(m.tnFD, 1 ))+ 256 *ASC(FREAD(m.tnFD, 1 ))
* Определяю общий размер файла
LOCAL lnFileSize
=FSEEK(m.tnFD, 0 , 0 )
lnFileSize=FSEEK(m.tnFD, 0 , 2 )
* Определяю значение самого последнего байта файла
LOCAL lnEndByte
=FSEEK(m.tnFD,- 1 , 1 )
lnEndByte=ASC(FREAD(m.tnFD, 1 ))
* И реальное количество записей в файле
LOCAL lnFaktCount
DO CASE
CASE m.lnFileSize=m.lnDataStart
	* Т.е. в таблице вообще нет информации
	lnFaktCount= 0 
CASE m.lnEndByte= 26 
	* Если последний байт файла имеет ASCII код  26  (0x1A), 
	* то общее число информационных байтов надо уменьшить на  1 
	lnFaktCount=(m.lnFileSize-m.lnDataStart- 1 )/m.lnRecLength
OTHERWISE
	lnFaktCount=(m.lnFileSize-m.lnDataStart)/m.lnRecLength
ENDCASE


LOCAL lnResult
* Анализ полученных результатов
DO CASE
CASE INT(m.lnFaktCount)<>m.lnFaktCount
	lnResult=- 1 
	* Есть дробная часть. Т.е. выделить целое количество записей невозможно
	* повреждения более существенные, чем разница в количестве записей
	* лучше ничего не трогать
CASE m.lnFaktCount<>m.lnReccount
	* Записанное и фактическое количество записей отличаются
	* корректирую записанное количество записей
	=FSEEK(m.tnFD, 4 , 0 )
	FOR lnI= 1  TO  4 
		=FWRITE(m.tnFD,CHR(MOD(INT(m.lnFaktCount/ 256 **(m.lnI- 1 )), 256 )))
	ENDFOR
	lnResult= 1 
OTHERWISE
	* Ошибки в определении количества записей не обнаружено
	lnResult= 0 
ENDCASE

RETURN m.lnResult


Это код для VFP, но он корректен и для FPD, надо только заменить все LOCAL на PRIVATE и проследить, чтобы имена переменных были не более 10 символов.

Но можешь ремонтировать и через открытие таких таблиц в VFP с последующим копированием

COPY TO NewTab TYPE FOX2X AS 866
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пытаюсь открыть БД, а там "not a database file"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]