Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пытаюсь открыть БД, а там "not a database file" / 21 сообщений из 21, страница 1 из 1
15.03.2004, 09:30
    #32441346
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Пытаюсь открыть БД, а там "not a database file"...
Что делать?
...
Рейтинг: 0 / 0
15.03.2004, 09:48
    #32441362
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
либа таблица не той версии (типа создана в VFP открываешь FPD\FPW). Либа порчен заголовок. Нужно травить на нее DBF Fixer какой-нить
...
Рейтинг: 0 / 0
15.03.2004, 09:50
    #32441365
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
о. Натпример тут - http://www.foxclub.ru/sol/index.php?act=view&id=23]
...
Рейтинг: 0 / 0
15.03.2004, 13:43
    #32441850
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Говорит, ресурс не найден... :(
...
Рейтинг: 0 / 0
15.03.2004, 13:44
    #32441853
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
В смысле ссылка
...
Рейтинг: 0 / 0
15.03.2004, 14:05
    #32441900
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
ну не аолучаеца у мя тут сцуклу поставить :)
http://www.foxclub.ru/sol/index.php?act=view&id=23
скопируй и будет щастье :)
...
Рейтинг: 0 / 0
15.03.2004, 14:12
    #32441913
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Дак и вхожу в Интернет Эксплорере - говорит нету такого ресурса (это тоже не работает http://www.foxclub.ru/sol/index.php)
...
Рейтинг: 0 / 0
15.03.2004, 14:37
    #32441954
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
крикни мыло, я те его залью
...
Рейтинг: 0 / 0
15.03.2004, 15:07
    #32442004
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Кричу - Dnv@r72.nalog.ru
...
Рейтинг: 0 / 0
15.03.2004, 15:09
    #32442015
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
А он вообще большой ?
...
Рейтинг: 0 / 0
15.03.2004, 15:11
    #32442017
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
ушло. Архиф на 18 кил. :)
...
Рейтинг: 0 / 0
15.03.2004, 15:16
    #32442032
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
авторРаботет так: запускается с ключем /s на пока еще неповрежденном dbf.
А если он уже накрылся, все равно поможет?
...
Рейтинг: 0 / 0
15.03.2004, 15:29
    #32442061
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
я тя умоляю! :)) а попробовать уже!? тока копию сделай резервную :)
ну и на Яндекс зайди и набери DBF Fixer - запутаешься скачивать фсего отофсего :)
http://www.yandex.ru/yandsearch?text=DBF+fixer&stype=&nl=0
...
Рейтинг: 0 / 0
15.03.2004, 17:58
    #32442412
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Сохранила заголовок из этого же порченого файла -
?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
15.03.2004, 20:58
    #32442600
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
>Все по-старому осталось - файл не открывается
Значит не совпадают версии файла и вашего фокса
...
Рейтинг: 0 / 0
15.03.2004, 21:45
    #32442631
Андрей Давыдов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
2 coolkenga
Восновоном dbf ломаются из-за того что не правильно заканчивается
запись последней записи в файл:

dbf заканчивается: запись+CHR(27)
Вылечить можно в текстовом редакторе:
Удалить последнюю недописанную запись и добавить CHR(27)
Отркыть с пом фокса и PACK для простановки правильного кол-ва записей в заголовке.
...
Рейтинг: 0 / 0
15.03.2004, 21:51
    #32442633
Андрей Давыдов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Сорри CHR(26)
...
Рейтинг: 0 / 0
15.03.2004, 23:55
    #32442661
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
...Предыдущий совет должен сработать. Но уж если нет (всякое случается) - dbf-ники хорошо сжимаются, поэтому (если он не большой и не конфиденциальный) - заrarьте его и киньте мне на trnikolaj@yandex.ru - на низкоуровневом доступе попытаюсь побороть и в виде восстановленного VFPdbf-ника Вам вышлю. Раньше неоднократно получалось, вроде.
...
Рейтинг: 0 / 0
16.03.2004, 17:28
    #32444186
coolkenga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Сделала проще - новую таблицу и перебила 27 записей :)
Однако, файл тот открывался VFP и DBFFixer там в конце поставил этот самый CHR(26), что все равно не помогло БД открыться в FP
...
Рейтинг: 0 / 0
16.03.2004, 18:01
    #32444270
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
А версия фокса какая?
...
Рейтинг: 0 / 0
16.03.2004, 18:36
    #32444334
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пытаюсь открыть БД, а там "not a database file"
Если файл открылся в 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пытаюсь открыть БД, а там "not a database file" / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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