Ошибка при открытии файла dbf

Ошибка открытия ДБФ

Я

  

andiko

25.12.06 — 17:38

При попытке открыть ДБФ-файл вываливается с ошибкой: «Перед выполнением операции нужно закрыть базу!». Файлы не открыты

ДБФ = СоздатьОбъект(«XBASE»);

ПутьФ = «D:obmen»;

ФС.УстТекКаталог(ПутьФ);

Файл = ФС.НайтиПервыйФайл(«*.*»);

Файл = ФС.НайтиСледующийФайл();

Пока ПустоеЗначение(Файл) = 0 Цикл // цикл по файлам в каталоге

 Файл = ФС.НайтиСледующийФайл();

 ИмяФайла = ПутьФ+Файл;

 ДБФ.ОткрытьФайл(ИмяФайла);

 Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда

  Если ДБФ.Открыта()=0 Тогда //проверяем, удалось ли открыть файл

   Сообщить(«Не удалось открыть файл!»);

  КонецЕсли;

  

ТелепатБот

1 — 25.12.06 — 17:38

  

andiko

2 — 25.12.06 — 17:39

(1) типа умный…

  

MAG

3 — 25.12.06 — 17:40

Путь = «D:1СBasesNOM.dbf»;
   Если ФС.СуществуетФайл(Путь) = 0 Тогда
       Сообщить(«Файл базы не найден!»,»!»);
       Возврат;
   КонецЕсли;    
   БД = СоздатьОбъект(«XBase»);
   Попытка
       БД.ОткрытьФайл(Путь);
   Исключение              
       БД.ЗакрытьФайл();
       БД.ОткрытьФайл(Путь);
   КонецПопытки;
   Если БД.Открыта() = 0 Тогда
       Сообщить(«Ошибка открытия базы !»,»!»);
       Возврат;
   КонецЕсли;

  

andiko

4 — 25.12.06 — 17:43

(3) прикольно…
а из-за чего ругаться может?

  

andiko

5 — 25.12.06 — 17:54

всеравно не работает

   ДБФ = СоздатьОбъект(«XBASE»);
   ПутьФ = «D:БазыРеализацииАвиапроobmen»;
   ФС.УстТекКаталог(ПутьФ);
   Файл = ФС.НайтиПервыйФайл(«*.*»);
   Файл = ФС.НайтиСледующийФайл();
   Пока ПустоеЗначение(Файл) = 0 Цикл // цикл по файлам в каталоге
       Файл = ФС.НайтиСледующийФайл();
       ИмяФайла = ПутьФ+Файл;

               Попытка
           ДБФ.ОткрытьФайл(ИмяФайла);
       Исключение
           ДБФ.ЗакрытьФайл();
           ДБФ.ОткрытьФайл(ИмяФайла);
       КонецПопытки;

               Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда
           Если ДБФ.Открыта()=0 Тогда //проверяем, удалось ли открыть файл
               Сообщить(«Не удалось открыть файл!»);
           КонецЕсли;

  

Каанкереде

6 — 25.12.06 — 17:55

(4) ты этот D:1СBasesNOM.dbf случаем никаким dbfViewer’ ом не открыл параллельно?

  

andiko

7 — 25.12.06 — 17:58

(6) так в том-то и дело: перезагружался, удалял — ничего не помогает :(

  

Каанкереде

8 — 25.12.06 — 18:03

(7) а пробовал этот файл еще чем нибудь открыть? тем же dbfViewer или dbfNavigator

  

andiko

9 — 25.12.06 — 18:04

(8) нормально открывается

  

Прохожий

10 — 25.12.06 — 18:13

(9) Есть программа, unlocker, вроде…

  

andiko

11 — 25.12.06 — 18:14

(10) файл ничем/никем не заблокирован: нормально удаляется

  

Прохожий

12 — 25.12.06 — 18:14

А зачем ты его удаляешь? Не удаляй…

  

Прохожий

13 — 25.12.06 — 18:15

У тебя именно этот файл не открывается или вообще ни один?

  

andiko

14 — 25.12.06 — 18:20

(13) у меня их в папке два, не один не открывается. перезагружался — не помогло. из внешней обработки, такой же в ноль код работает, из глобальника — нет

  

Tymoha

15 — 25.12.06 — 18:25

(14)атрибуты файла проверь

  

andiko

16 — 25.12.06 — 18:52

(15) пучком все с атрибутами…

  

andiko

17 — 25.12.06 — 19:24

неужели ни у кого такого небыло ?

  

DrShad

18 — 25.12.06 — 19:28

имена файлов давай?

  

andiko

19 — 25.12.06 — 19:32

(18) не понял?

  

DrShad

20 — 25.12.06 — 19:35

у меня так было когда файлы имели кирилические символы или были больше 8 символов в названии

  

andiko

21 — 25.12.06 — 19:36

(20) у меня файлы называются 1.dbf, 2.dbf, 3.dbf и т.д.
причем обработкой открываются, а из глобальника нет

  

DrShad

22 — 25.12.06 — 19:38

какой обработкой?

  

andiko

23 — 25.12.06 — 19:39

(22)точной копией процедуры из глобальника. написал чтобы удобнее было отладить

  

DrShad

24 — 25.12.06 — 19:42

та что в (0)

  

DrShad

25 — 25.12.06 — 19:42

а ты ее из глобальника убрал?

  

DrShad

26 — 25.12.06 — 19:44

+(25) т.е. они у тебя не пытаются дважды открыться? ты их после пользования закрываешь?

  

andiko

27 — 25.12.06 — 19:46

(26) написал во внешней обработке, отладил. все гуд
впихнул в глобальник — выдает ошибку. удалил файлы — пофиг. перегрузился — пофиг, атрибуты файлов — гуд

  

DrShad

28 — 25.12.06 — 19:48

а отладчиком что показывает?

  

andiko

29 — 25.12.06 — 19:50

(28) а отладчик куда пихать?

  

mun2

30 — 25.12.06 — 19:50

У тебя переменные в глобальнике не пересекаются?

  

DrShad

31 — 25.12.06 — 19:55

а что ты вообще в них пишешь?

  

andiko

32 — 26.12.06 — 10:37

(30) переменные не пересекаются
(31) в файле содержится структура справочника другой базы

  

A_M-ko

33 — 26.12.06 — 11:37

Был у меня такой прикол. Для открытия файла запустил цикл, так вот файл открылся с четвертой попытки. Платформа 1С рулит.

  

andiko

34 — 26.12.06 — 11:40

(33) а лечить как?

  

A_M-ko

35 — 26.12.06 — 11:42

Платформу лечить нужно. Не ожидает она момента открытия, спешит куда-то.

  

andiko

36 — 26.12.06 — 11:43

(35) а конкретные предложения? ведь из внешней обработки все работает

  

A_M-ko

37 — 26.12.06 — 11:43

Ха. А уменя как раз во внешней обработке не работало.

  

andiko

38 — 26.12.06 — 11:44

(37) а в глобальном все пучком?

  

A_M-ko

39 — 26.12.06 — 11:45

Не заморачивайся. Поставь цикл и все срастется. Секунда туда секунда сюда. Все остальное работает дольше.

  

andiko

40 — 26.12.06 — 11:47

цикл с 1 по 100 000 хватит?

  

A_M-ko

41 — 26.12.06 — 11:49

Да я же говорю с четвертой попытки. Цикл

ДБ.ОткрытьФайл(ИмяФайла);

Пока ДБ.Открыта()=0 Цикл

   ДБ.ОткрытьФайл(ИмяФайла);

КонецЦикла;

  

andiko

42 — 26.12.06 — 11:51

(41) т.е. этот кусок в цикл на 4-5 раз?

  

Один С

43 — 26.12.06 — 11:56

(40) Поставь перед словом «Попытка»  строчку Сообщить(Файл);

  

A_M-ko

44 — 26.12.06 — 11:57

Да нет, это все. Просто я там счетчик при отладке вставлял и его потом смотрел при выходе из цикла.

  

andiko

45 — 26.12.06 — 12:00

(43) поставил. сообщает имя файла который там есть
(44) понял, спасибо. буду пробывать (бредятина какая-то)

  

andiko

46 — 26.12.06 — 12:15

прокрутилось чуть больше 10 раз, толку 0

  

andiko

47 — 26.12.06 — 12:42

уже минут 40 крутится и не читает

  

A_M-ko

48 — 26.12.06 — 12:44

Ну извини. Я описал как было у меня.

  

A_M-ko

49 — 26.12.06 — 12:48

У меня правда проблема была в том, что файл создавался в обработке. Перед открытием стоял цикл задержки по условию наличия файла в каталоге. Так вот слету файл не открывался, а с четвертой попытки все получалось. Может у тебя он действительно чем-то он блокируется?

  

andiko

50 — 26.12.06 — 12:49

(49)  я так понимаю, что если файл блокируется, то с ним ничего нельзя сделать: не удалить, не переместить, но! у меня и удаляется и перемещается

  

A_M-ko

51 — 26.12.06 — 12:52

А нет ли ограничения на количество открытых файлов xBase? Я не знаю, просто предположение?

  

andiko

52 — 26.12.06 — 12:58

(51) это как?

  

A_M-ko

53 — 26.12.06 — 13:00

И еще. Когда я в глобальном модуле при начале работы запустил небольшую обработку справочника на 23000 элементов, то работа системы продолжилась, а справочник продолжал обрабатываться, и меню осталось недоступным. Как у тебя вызывается эта процедура?

  

A_M-ko

54 — 26.12.06 — 13:03

(52) Сколько одновременно можно создать объектов xBase?

  

andiko

55 — 26.12.06 — 13:12

(53) вызывается по таймеру
(54) как узнать?

  

Один С

56 — 26.12.06 — 13:18

Че то я не понял. Зачем ты файлы открываешь, закрываешь?

А строчка «Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда»

вообще непонятно для чего.

  

andiko

57 — 26.12.06 — 13:21

(56) цикл по файлам в каталоге

  

Иде я

58 — 26.12.06 — 13:30

Нука отпость сюда путь к каталогу…
и код обработки

  

andiko

59 — 26.12.06 — 13:33

ДБФ = СоздатьОбъект(«XBASE»);
   ПутьФ = «D:obmen»;
   ФС.УстТекКаталог(ПутьФ);
   Файл = ФС.НайтиПервыйФайл(«*.*»);
   Файл = ФС.НайтиСледующийФайл();
   Пока ПустоеЗначение(Файл) = 0 Цикл // цикл по файлам в каталоге
       Файл = ФС.НайтиСледующийФайл();
       ИмяФайла = ПутьФ+Файл;

               ДБФ.ОткрытьФайл(ИмяФайла);

       Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда
           Если ДБФ.Открыта()=0 Тогда //проверяем, удалось ли открыть файл
               Сообщить(«Не удалось открыть файл!»);
           КонецЕсли;

и так далее

  

A_M-ko

60 — 26.12.06 — 13:34

Може все дело в вызове по таймеру? Может что-то с синхронизацией событий открытия-закрытия? Эх отладчик тупой.

  

  

Иде я

61 — 26.12.06 — 13:35

«*.*» Че эт за лажа ?
Ты все подряд пытаешься открывать ? может отфильтруешь по «*.dbf» ?

  

Иде я

62 — 26.12.06 — 13:37

И блин, нафига ты вначале пытаешься открыть файл, а потом только проверяешь существование его ?

  

Иде я

63 — 26.12.06 — 13:37

Файл = ФС.НайтиСледующийФайл();
сообщить(Файл);
       ИмяФайла = ПутьФ+Файл;
Сообщить(ИмяФайла);

  

andiko

64 — 26.12.06 — 14:10

(61) у меня там только дбф
(62) исправил — пофиг

  

andiko

65 — 26.12.06 — 15:14

спецы иссякли…

  

Один С

66 — 26.12.06 — 15:26

Выложи процедуру целиком.

  

vpetrov

67 — 26.12.06 — 15:32

Возможно, что у тебя неправильно отрабатывает путь… Попробуй полностью прописать путь, с учетом сетевого адреса, либо попробуй перекинуть этот каталог на диск С, и соответственно в коде поменять путь с Д на С.

  

andiko

68 — 26.12.06 — 15:33

ДБФ = СоздатьОбъект(«XBASE»);
   ПутьФ = «D:БазыРеализацииАвиапроobmen»;
   ФС.УстТекКаталог(ПутьФ);
   Файл = ФС.НайтиПервыйФайл(«*.*»);
   Файл = ФС.НайтиСледующийФайл();
   Пока ПустоеЗначение(Файл) = 0 Цикл // цикл по файлам в каталоге
       Файл = ФС.НайтиСледующийФайл();
       ИмяФайла = ПутьФ+Файл;

               ДБФ.ОткрытьФайл(ИмяФайла);

               Если ФС.СуществуетФайл(ИмяФайла) = 1 Тогда
           Если ДБФ.Открыта()=0 Тогда //проверяем, удалось ли открыть файл
               Сообщить(«Не удалось открыть файл!»);
           КонецЕсли;

                       Состояние(«Загружаем данные…»);

                       тз = СоздатьОбъект(«ТаблицаЗначений»);
           тз1 = СоздатьОбъект(«ТаблицаЗначений»);
           ДБФ.Первая(); //позиционируемся на первой записи
           Пока ДБФ.ВКонце()=0 Цикл //пока не дошли до конца, крутим цикл
               тз.НоваяСтрока();
               тз1.НоваяСтрока();
               // шапка документа
               тз.NOMERDOC = ДБФ.NOMERDOC;   // номер документа

               тз.KOLVO    = ДБФ.KOLVO;       // количество
               ДБФ.Следующая();
           КонецЦикла;
           ДБФ.ЗакрытьФайл();
           ФС.УдалитьФайл(ИмяФайла);
       КонецЕсли; // проверка на наличе файла    
   КонецЦикла; // конец цикла по файлам в папке

  

andiko

69 — 26.12.06 — 15:33

(67) с путем все ок

  

Казанская Сирота

70 — 26.12.06 — 15:37

Попробуй из пути убрать Кириллицу. C:DBFfilesobmen

  

Казанская Сирота

71 — 26.12.06 — 15:39

Кста у тя поиск пропускает первые два файла.

Файл = ФС.НайтиПервыйФайл(«*.*»);  //ты уже на файл спозиционировался

Файл = ФС.НайтиСледующийФайл(); // гоп на второй

Пока ПустоеЗначение(Файл) = 0 Цикл

Файл = ФС.НайтиСледующийФайл(); // гоп на третий ;)

ИмяФайла = ПутьФ+Файл;

  

Казанская Сирота

72 — 26.12.06 — 15:41

Делай

Файл = ФС.НайтиСледующийФайл(); // гоп на третий ;)

Если ПустоеЗначение(Файл)=1 Тогда

 Прервать;

КонецЕсли;

КонецЦикла;

  

Казанская Сирота

73 — 26.12.06 — 15:41

// гоп на третий ;)  не отсюда

  

Shaman100M

74 — 26.12.06 — 15:42

(21) Не начинай файл с цифры. Сделай хотя бы F1.dbf F2.dbf …

  

Shaman100M

75 — 26.12.06 — 15:47

В фоксе такие файлы не открываются

  

Один С

76 — 26.12.06 — 16:20

ДБФ = СоздатьОбъект(«XBASE»);

   ПутьФ = «D:БазыРеализацииАвиапроobmen»;

   ФС.УстТекКаталог(ПутьФ);

   Файл = ФС.НайтиПервыйФайл(«*.dbf»);

   Пока ПустоеЗначение(Файл) = 0 Цикл

       ИмяФайла = ПутьФ+Файл;    

       ДБФ.ОткрытьФайл(ИмяФайла);    

       Состояние(«Загружаем данные…»);    

           тз = СоздатьОбъект(«ТаблицаЗначений»);

           тз1 = СоздатьОбъект(«ТаблицаЗначений»);

           ДБФ.Первая(); //позиционируемся на первой записи

           Пока ДБФ.ВКонце()=0 Цикл //пока не дошли до конца, крутим цикл

               тз.НоваяСтрока();

               тз1.НоваяСтрока();

               тз.NOMERDOC = ДБФ.NOMERDOC;   // номер документа

               тз.KOLVO    = ДБФ.KOLVO;       // количество

               ДБФ.Следующая();

           КонецЦикла;

           ДБФ.ЗакрытьФайл();

           ФС.УдалитьФайл(ИмяФайла);

           Файл = ФС.НайтиСледующийФайл();

   КонецЦикла;

  

andiko

77 — 26.12.06 — 16:29

(76) в таком варианте работает, только загружает один файл, а остальные удаляет

  

A_M-ko

78 — 26.12.06 — 16:33

А может dbf-файлы не одного типа (FoxPro, dBase), например файлы типа Fox2x открываются а выше версий нет.

  

Shaman100M

79 — 26.12.06 — 16:34

(77) Не нарушай выборку удалением, сделай так:

Спс1=СоздатьОбъект(«СписокЗначений»);

Файл=ФС.НайтиПервыйФайл(«*.*»);

Пока пустоеЗначение(Файл)=0 Цикл

   Спс1.ДобавитьЗначение(Файл);

   Файл=ФС.НайтиСледующийФайл();

КонцЦИкла;

а потом обрабатывай список.

  

andiko

80 — 26.12.06 — 16:39

(78) файлы созданы в 1С
(79) а не черезчур запутанно и сложно?

  

Один С

81 — 26.12.06 — 16:41

Вот тебе окончательный вариант. Он работает.

   ДБФ = СоздатьОбъект(«XBASE»);

   ПутьФ = «D:БазыРеализацииАвиапроobmen»;

   ФС.УстТекКаталог(ПутьФ);

   Файл = ФС.НайтиПервыйФайл(«*.dbf»);

   Пока ПустоеЗначение(Файл) = 0 Цикл

       ИмяФайла = ПутьФ+Файл;    

       ДБФ.ОткрытьФайл(ИмяФайла);    

       Состояние(«Загружаем данные…»);    

           тз = СоздатьОбъект(«ТаблицаЗначений»);

           тз1 = СоздатьОбъект(«ТаблицаЗначений»);

           ДБФ.Первая(); //позиционируемся на первой записи

           Пока ДБФ.ВКонце()=0 Цикл //пока не дошли до конца, крутим цикл

               тз.НоваяСтрока();

               тз1.НоваяСтрока();

               тз.NOMERDOC = ДБФ.NOMERDOC;   // номер документа

               тз.KOLVO    = ДБФ.KOLVO;       // количество

               ДБФ.Следующая();

           КонецЦикла;

           ДБФ.ЗакрытьФайл();

           Файл = ФС.НайтиСледующийФайл();

           ФС.УдалитьФайл(ИмяФайла);          

   КонецЦикла;

  

andiko

82 — 26.12.06 — 16:59

(81) блин… не работает

  

Один С

83 — 26.12.06 — 17:06

(82) Где не работает?

  

Иде я

84 — 26.12.06 — 17:06

Первые два файла будут «.» и «..»

  

andiko

85 — 26.12.06 — 17:08

(84) угу

  

andiko

86 — 26.12.06 — 17:12

(83) загружает один из двух файлов и все

  

A_M-ko

87 — 27.12.06 — 11:01

А может не удалять в цикле файлы, а удалить потом после загрузки?

1

2

3

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Тимур

Дата регистрации: 24.06.2019
Сообщений: 18

Начну с того что с 1с столкнулся так сказать впервые. стоит какая то 1с. 7.7 (камин)
Попросили помочь решить проблему, естественно резервных копий БД нет.
при запуске 1с выдает ошибку на 1SENTRY.DBF.
почитав форумы и т.п. попробовал сделал вот что:
Удалил все файлы CDX запустил конфигуратор, и сделал Тестирование и исправление
по окончанию выдало вот что:

Таблица — 1SENTRY. Не сошлось наименование поля номер 19 — ODTSC0
Проверка физической целостности таблиц ИБ. Неисправимая ошибка.
Таблица — 1SENTRY. Не сошлось наименование поля номер 19 — ODTSC0
Проверка физической целостности таблиц ИБ. Неисправимая ошибка.

ссылка на файл 1SENTRY — yadi.sk/i/XoA8cr52n4JN2Q
Почитав форумы понял что как-то ковыряют проблемный файл что-то убирают и т.п. и все становится хорошо, если кому не сложно помогите или расскажите что делать. Заранее огромное спасибо!

espero

Дата регистрации: 01.03.2004
Сообщений: 8

Тимур,
Кроме файла 1SENTRY надо положить хотя бы файлы 1cv7.md и 1cv7.dd

Valentin46

Дата регистрации: 10.02.2011
Сообщений: 1041

Тимур, прежде чем «ковырять» проблемный файл, следует установить какой-нибудь редактор dbf-файлов, например, ReDbf.

Тимур

Дата регистрации: 24.06.2019
Сообщений: 18

Valentin46, Устанавливал. Не открывает, ошибку выдает

Тимур

Дата регистрации: 24.06.2019
Сообщений: 18

espero, yadi.sk/d/PgZSYmHrYI6bdg

Тимур

Дата регистрации: 24.06.2019
Сообщений: 18

Valentin46 пишет:

Цитата

                                             Ответ на
                   пост №1

                    Тимур , прежде чем «ковырять» проблемный файл следует установить какой-нибудь редактор dbf-файлов, например, ReDbf.

Выдает ошибку: Ошибка при открытии файла — T1: Error 7016: corrupt table. make sure you are not attempting to open a DBF with an ADT table type or vice versa

espero

Дата регистрации: 01.03.2004
Сообщений: 8

Тимур,
в архиве нет файла 1SENTRY.dbf

Тимур

Дата регистрации: 24.06.2019
Сообщений: 18

espero пишет:

Цитата

Ответ на
пост №5

Тимур , в архиве нет файла 1SENTRY.dbf

сорри в топе темы не то кинул
вот — yadi.sk/d/zCGQhQnKwULh7A

espero

Дата регистрации: 01.03.2004
Сообщений: 8

Тимур,
Получил. Сейчас под руками нет необходимых инструментов. Вечером сообщу результат.

Тимур

Дата регистрации: 24.06.2019
Сообщений: 18

espero пишет:

Цитата

                                             Ответ на
                   пост №8

                    Тимур , Получил. Сейчас под руками нет необходимых инструментов. Вечером сообщу результат.

буду с нетерпением ждать

Исправить ошибку при открытии файла DBF ONLINE

Исправляйте, обсуждайте и решайте проблемы, связанные с повреждением базы данных Microsoft® Visual FoxPro, в режиме онлайн

Решения для бизнеса

Если использование онлайн сервиса для восстановления невозможно, вы можете скачать одну из следующих утилит:

Recovery for DBF

Пакеты утилит OfficeRecovery 2012

Помимо возможности восстановления информации в домашних условиях, они также предоставляют неограниченные возможности по восстановлению большого количества файлов, профессиональную поддержку и множество других опций, полезных корпоративным пользователям.

Видео-руководство по использованию сервиса OfficeRecovery Online

Методы восстановления DBF

Сервис по восстановлению поврежденных файлов DBF анализирует каждый параграф поврежденной базы данных dbf и восстанавливает все доступные данные с помощью высококачественных низкоуровневых алгоритмов.

Все доступные данные сохраняются в новую базу данных dbf, которая и является результатом восстановления.

Не требуется никаких специальных навыков или средств. Просто загрузите поврежденный dbf файл и дождитесь окончания процесса восстановления. Вы можете получить полностью восстановленную базу данных dbf, выбрав платные либо бесплатные опции.

OfficeRecovery Online Исправление и Ремонт Файлов DBF

Для начала важно определить поврежден ли ваш dbf файл. Файл dbf поврежден, когда в нём есть несоответствия, которые делают его невозможным для открытия с помощью Visual FoxPro. Если во время открытия вашего dbf файла появилось сообщение об ошибке, или приложение упало, или файл открывается как набор случайных символов, то все это типичные признаки повреждения вашего файла dbf.

Хорошие новости заключаются в том, что более половины повреждённых файлов dbf утрачены не полностью. И OfficeRecovery Online for DBF был создан именно для того, чтобы исправить и починить оставшиеся неповрежденными данные из ваших dbf файлов. Вы вернете свои данные и сможете открыть файл в Visual FoxPro без всяких ошибок.

Вам не нужно скачивать десятки программ для исправления вашего файла. Выберите поврежденный файл dbf, нажмите на «Безопасная загрузка и восстановление» и дождитесь пока файл будет исправлен. Рекомендуется всегда просматривать бесплатный демо dbf файл, который доступен после ремонта.

Поврежденные базы данных dbf — это файлы, которые неожиданно стали непригодными для использования и не могут быть открыты с помощью Microsoft Visual FoxPro. Существует ряд причин, по которым файл dbf может быть испорчен. И в некоторых случаях возможно исправить и восстановить поврежденный dbf (Visual FoxPro 9.0, 8.0, 7.0, 6.0, 5.0, 3.0) файл.

Если ваш dbf база данных внезапно стала поврежденной или недоступной для открытия в программе, в которой она был создана, не отчаивайтесь! Вам не нужно больше покупать дорогое программное обеспечение, чтобы восстановить только один испорченный файл dbf. OfficeRecovery for DBF Online представляет вам новый онлайн сервис, который поможет вам восстановить поврежденную базу данных dbf мгновенно. Все, что вам нужно сделать, это просто загрузить поврежденный dbf файл, используя браузер, оценить качество восстановления демо результатов и выбрать подходящий для вас вариант решения проблемы.

OfficeRecovery Online for DBF поддерживает Microsoft Visual FoxPro 9.0, 8.0, 7.0, 6.0, 5.0, 3.0.
Восстановленные данные сохраняются в новую базу данных Visual FoxPro.

OfficeRecovery for DBF Online предлагает бесплатные и платные опции для получения полных результатов восстановления. Бесплатный вариант предполагает, что полные результаты могут быть получены абсолютно бесплатно в течение 14-28 дней. Всё, что вам нужно сделать, это просто подписаться на бесплатные результаты после окончания процесса восстановления файла dbf. Если же вам нужно получить восстановленный dbf файл сразу, мгновенно, вам нужно выбрать платный вариант вместо бесплатного.

Что же делать, если в вашем файле dbf не выявлено данных для восстановления? Вы можете заказать невозмещаемый анализ вашего файла нашей опытной технической командой. В некоторых случаях восстановление данных возможно только вручную.

Вопросы и ответы по Recovery for DBF

В: Может ли DBFRecovery восстановить мою базу данных Visual FoxPro?
О: Эффективный способ выяснить, подлежит ли восстановлению база данных Visual FoxPro — это попробовать на ней демо версию DBFRecovery, используя форму для загрузки на этой странице.
В: Какие ограничения есть у демо версии DBFRecovery?
О: Демо версия результатов восстановления будет содержать ограниченное количество строк каждой таблицы исходной базы данных. Остальные же строки будут содержать «demo» в текстовых полях и нулевые значения в других типах полей. Полная версия восстановленных результатов также будет содержать полностью восстановленные демо-ограниченные строки.

Обратите внимание, что никаких дополнительных записей или таблиц, или других элементов и свойств исходной базы данных не будет восстановлено в полных результатах, если этих данных не было в демо результатах.

В: Я пробовал демо. Как мне решить, стоит ли покупать полные результаты восстановления?
О: Оценка демо результатов может помочь в принятии решения.
В: Почему в результатах восстановления меньше данных, чем в исходной базе данных Visual FoxPro?
О: Это нормально. Поврежденные части вашей базы данных Visual FoxPro будут сконвертированы с нулевым размером на выходе. Другая распространенная причина уменьшения размера файла может быть в том, что некоторые свойства исходной базы данных не поддерживаются и поэтому отсутствуют в восстановленной базе данных.
База данных, восстановленная демо версией, меньше потому, что она в основном состоит из демо-заполнителей, нежели из исходных данных.

ERROR: Syntax error in query. Incomplete query clause.
Please help me.

        string db_file = null;
        OpenFileDialog op = new OpenFileDialog();
        op.InitialDirectory = Application.StartupPath + "\out";
        op.Filter = "DBF file|*.dbf"; 
        if (op.ShowDialog() == DialogResult.OK)
        {
            db_file = op.FileName;
            FileInfo fi = new FileInfo(op.FileName);

                   String ConnectionString;
                   ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fi.DirectoryName + ";Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;Persist Security Info=True";
          System.Data.OleDb.OleDbConnection dBaseConnection;
          dBaseConnection = new System.Data.OleDb.OleDbConnection(ConnectionString);
          dBaseConnection.Open();
          System.Data.OleDb.OleDbCommand dBaseCommand;

              dBaseCommand = new System.Data.OleDb.OleDbCommand("Select * From '" + Path.GetFileNameWithoutExtension(fi.Name) + "'", dBaseConnection);
          System.Data.OleDb.OleDbDataReader dBaseDataReader;
          dBaseDataReader = dBaseCommand.ExecuteReader();
          while (dBaseDataReader.Read()) 
          {
              MessageBox.Show("x");
          }
          dBaseDataReader.Close();   

ERROR: Syntax error in query. Incomplete query clause.

asked Jun 8, 2012 at 13:28

2

I would suggest using the VfpOleDb provider. Here is the connection string using that provider:

ConnectionString = "Provider=VfpOleDb;Data Source=" + fi.DirectoryName;

answered Jun 8, 2012 at 14:03

Tom Brothers's user avatar

Tom BrothersTom Brothers

5,9191 gold badge20 silver badges17 bronze badges

1

Try this:

("Select * From " + Path.GetFileNameWithoutExtension(fi.Name) , dBaseConnection)

without the quotes ‘Path..’.

Hope it helps.

answered Jun 8, 2012 at 13:31

Ignacio Gómez's user avatar

Ignacio GómezIgnacio Gómez

1,5874 gold badges23 silver badges41 bronze badges


Опубликовано вт, 04/17/2018 — 15:05 пользователем focus15

Проблема: При попытке открыть DBF-файл в клиент-банке 1С возникает ошибка: «Ошибка открытия файла»

Имеем следующую ошибку:

Ошибка при открытии файла DBF

Открываем исходный код и смотрим обработчиком. Удивительно, но даже метод «ОписаниеОшибки» (который теоретически должен предоставить отладочную информацию) не дает ничего:

1.png

Опытным путем было установлено: при наличии более 8-ми символов в названии файла DBF 1С выдает ошибку при открытии. Всего лишь навсего! Более всего удивляет что в исключение не передается какое-либо внятное описание ошибки.


Похожие материалы


Форум программистов Vingrad

Страницы: (2) Все [1] 2 
( Перейти к первому непрочитанному сообщению )

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Ошибка «is not an object file», Ошибка при открытии файла dbf через FoxP 

V

   

Опции темы

Voldemar2004
  Дата 28.3.2012, 13:19 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23

При открытии *.dbf — файла из проводника запускается Microsoft Visual FoxPro 6, и выдает такую ошибку: «с:имя_файла.fxp is not an object file.» и файл dbf не открывается !

То есть я щелкаю дважды по файлу dbf, открывается FoxPro (в ОС прописаны ассоциации для DBF -> FoxPro 6), FoxPro открывается и создает файл с раширением *.fxp и дальше ругается на ошибку:

user posted image

Как исправить это ? Кто нибудь сталкивался с такой проблемой ? Windows XP.

Если же этот же файл открыть так: Открыть среду FoxPro 6, File -> Open, затем «Browse» — все отлично и без проблем и файл с расширением fxp не создается и сообщений об ошибке не выдает.

Это сообщение отредактировал(а) Voldemar2004 — 28.3.2012, 13:20

———————

i_i 
(‘;’) 
(V)

user posted image

PM MAIL   Вверх
Данкинг
Дата 28.3.2012, 13:27 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

А с какой стати вообще при открытии .dbf создаётся .fxp? smile Кстати, лучше фоксовые файлы запускать из пути, в котором нет пробелов. Т.е. точно не с рабочего стола.

Добавлено через 1 минуту и 34 секунды
А если пересохранить таблицу в новый файл, т.е.

Код

copy table to table_new 

?

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Voldemar2004
  Дата 28.3.2012, 20:31 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23

Проблему решил установкой 9 версии фокса.

———————

i_i 
(‘;’) 
(V)

user posted image

PM MAIL   Вверх
Данкинг
Дата 28.3.2012, 21:20 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

Я бы восьмой посоветовал — в девятом глюкавости больше. Но, видимо, просто слетело что-то в фоксе и требовалась именно переустановка.

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Reese
Дата 3.4.2012, 12:24 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1

В девятом глюков меньше. Особенно если поставить SP2 и последний hotfix

PM MAIL   Вверх
Данкинг
Дата 3.4.2012, 13:54 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

Цитата(Reese @  3.4.2012,  13:24 Найти цитируемый пост)
В девятом глюков меньше.

Да, если в программах первой же строчкой писать

Код

set enginebehavior 70

 

smile

Это сообщение отредактировал(а) Данкинг — 3.4.2012, 13:54

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Voldemar2004
Дата 3.4.2012, 14:05 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23

Тема давно уже закрыта, а письма все идут и идут… Я 9-ый поставил с СП2. Вообще он не для меня нужен был, я FoxPro никогда не пользовался, неудивительно, что MS прекратила выпуск этого языка.

———————

i_i 
(‘;’) 
(V)

user posted image

PM MAIL   Вверх
Данкинг
Дата 3.4.2012, 14:32 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

Цитата(Voldemar2004 @  3.4.2012,  15:05 Найти цитируемый пост)
я FoxPro никогда не пользовался, неудивительно, что MS прекратила выпуск этого языка. 

Да, они потому и прекратили выпуск, что ты не пользовался.  smile 

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Reese
Дата 3.4.2012, 14:57 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1

Строчка set enginebehavior 70
переключает SQL движок на совместимость с 7-ой версией. Чтобы при переходе на девятку не переписывать весь код сразу. Т.к. в девятке движок не позволяет всяких вольностей и неопределенных выражений.
Причем тут глюки?

PM MAIL   Вверх
Данкинг
Дата 3.4.2012, 15:52 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

Цитата(Reese @  3.4.2012,  15:57 Найти цитируемый пост)
Причем тут глюки? 

При том, что, к примеру, обычный group by в девятом просто так, как ему и положено, работать нифига не будет.  smile Зачем сделана эта неработа — не знаю. Да, ещё в девятом и при его инсталляции куча какой-то фигни ставится. Если вообще ставится. smile Вывод: восьмой — самой оно.

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Reese
Дата 3.4.2012, 16:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1

Установка 8-ой и 9-ой версии одинаковая.
(Может вы пользовались кривым пиратским инсталлятором?)
А группировка как раз правильная в 9-ой версии Т.е. по стандарту ANSI. До 8-ой версии допускалась вольность в указании полей не участвующих в группировке, что противоречит стандарту и не ясно какое значение надо выбрать.

PM MAIL   Вверх
Данкинг
Дата 3.4.2012, 19:54 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

Код

select * from dbf() group by pole1

Что тут противоречит стандарту? А в девятке это работать не будет.

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Reese
Дата 4.4.2012, 11:07 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1

Противоречит — «*». Т.к. каждый столбец, который мы выбираем должен быть указан в выражении group by.
Так указано в стандарте ANSI SQL-92.

PM MAIL   Вверх
Данкинг
Дата 4.4.2012, 11:12 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130

А что же сразу MS не привели фокс к этому самому стандарту? Только на девятом спохватились.

Это сообщение отредактировал(а) Данкинг — 4.4.2012, 11:12

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Reese
Дата 4.4.2012, 11:27 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1

Они шли постепенно. (Не помню весь стандарт, но похоже так и не дошли:)) 
Собственно до сих пор не все СУБД, полностью поддерживают стандарт.

Это сообщение отредактировал(а) Reese — 4.4.2012, 12:05

PM MAIL   Вверх



















Страницы: (2) Все [1] 2 

Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Foxpro/Clipper/Dbase»
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно — как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »

  • Ошибка при открытии файла coreldraw
  • Ошибка при открытии файла word xml parsing error
  • Ошибка при открытии файла bitrix
  • Ошибка при открытии файла word 2003 как восстановить документ
  • Ошибка при открытии файла 0xc10100bf