Меню

Ошибка при открытии файла 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=1 Цикл

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

Если ПустоеЗначение(Файл)=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

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

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

34 / 11 / 0

Регистрация: 22.09.2010

Сообщений: 357

1

ошибка при открытии дбф

11.11.2010, 15:32. Показов 1744. Ответов 11


Подскажите, что можно сделать, написал программу которая открывает дбф-файл берет нужные значения ячеек и вставляет в текстовый файл. У меня на компе отлично работает, а на другом во время открытия дбф выдает ошибку:
[IMG]http://i12.***********/big/2010/1111/f7/d320aca36229bbaa7322ce8fff3baff7.jpg[/IMG]

Использую провайдер Jet.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



17 / 17 / 3

Регистрация: 17.02.2010

Сообщений: 211

11.11.2010, 17:01

2

а чо это за картинка???? Откуда она

Добавлено через 4 минуты
ой, затупил
на машине фреймворк не установлен!!!



0



34 / 11 / 0

Регистрация: 22.09.2010

Сообщений: 357

11.11.2010, 18:14

 [ТС]

3

Так вот самое интересное он там стоит, и другие проги запускаются нетовские. И вообще программа бы не запустилась, если б фреймворк не стоял, а так запускается, а когда нажимаю на кнопочку, чтобы подключиться к базе, выскакивет та ошибка. Мне кажется дело все в провайдере, только что именно с ним делать. А может быть я фреймворк не той версии поставил, может ли такое быть?
И вообще, кто знает, скажите где вообще этот JET находится, ато фокс специально ставится, а откуда берется JET — ХЗ.



0



1274 / 979 / 137

Регистрация: 01.10.2009

Сообщений: 3,092

Записей в блоге: 1

11.11.2010, 18:39

4

Дело не NET. Провайдер не той версии. А это точно dbf, не Acces?
А может и фреймворк не той версии, поэтому и Provaider по старше.



0



1274 / 979 / 137

Регистрация: 01.10.2009

Сообщений: 3,092

Записей в блоге: 1

11.11.2010, 18:51

5

Вот попробуй поставь на комп где не работает, поставщик FOX’a



0



34 / 11 / 0

Регистрация: 22.09.2010

Сообщений: 357

12.11.2010, 10:21

 [ТС]

6

Да, это дбф. Так ведь у меня прога с JET работает, с фоксом наверно придется переделывать.
Так вот, а может быть такое, что на компах например фреймворк 2, а версии разные. И где вообще находится этот JET, как его просмотрть, доустановить?



0



271 / 203 / 13

Регистрация: 18.06.2010

Сообщений: 491

12.11.2010, 13:29

7

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

сия ошибка читается так:на компе стоит мдак версии 2.5,а необходимо выше 2.6. мдак ставится с разными приложениями винды. возможно, там много чего устарело просто

з.ы.на всякий случай вопросы:как создана дбфка?покажи строку подключения.какая версия офиса стоит?

http://www.microsoft.com/downl… laylang=en
http://en.wikipedia.org/wiki/M… Components
http://support.microsoft.com/kb/301202



1



demonmov

34 / 11 / 0

Регистрация: 22.09.2010

Сообщений: 357

12.11.2010, 13:53

 [ТС]

8

По словам пользоателя ДБФ из пенсионного фонда приносят, так что ХЗ как она сделана, но не в ней дело, у меня нормально открывается.
Значит так, на компе, где выдает ошибку:
Windows 2000 SP4 (у меня Windows XP SP2 Zver CD)
Office 2003 SP3 (такой же офис и у меня)

Вот подключение к ДБФ

C#
1
2
3
4
5
6
7
8
9
10
11
12
 
openFileDialog1.ShowDialog();
string strSQL = "Select * from "+openFileDialog1.FileName;
string con = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Path.GetDirectoryName(openFileDialog1.FileName) + "; Extended Properties=DBASE IV";
          
textBox1.Text = Convert.ToString(vedomost);
            cn = new OleDbConnection(con);
            cn.Open();
            ad = new OleDbDataAdapter(strSQL, cn);
            dSet = new DataSet();
            ad.Fill(dSet);
            cn.Close();

Но врядли что-то с кодом не так, у меня работает.

И еще скажите кто-нибудь где вообще этот JET находится?



0



271 / 203 / 13

Регистрация: 18.06.2010

Сообщений: 491

12.11.2010, 13:57

9

я ж вам все написала)

Цитата
Сообщение от Terion
Посмотреть сообщение



1



34 / 11 / 0

Регистрация: 22.09.2010

Сообщений: 357

12.11.2010, 14:00

 [ТС]

10

Извиняюсь, решил на последние вопросы сразу ответить, ссылки щас посмотрю.



0



7 / 7 / 0

Регистрация: 07.10.2010

Сообщений: 40

12.11.2010, 14:59

11

У меня есть MDAC 2.7 (5 МБ).
Если нужен, могу слить. Кстати, как это делается?

М.б. тебе лучше его из Инета скачать? Ищи файл: MDAC_TYP27.EXE.



1



34 / 11 / 0

Регистрация: 22.09.2010

Сообщений: 357

12.11.2010, 15:20

 [ТС]

12

Rybak, угу, спс, нашел.



0



Утилита восстановления DBF файлов

База данных .dbf повреждена и не открывается. Как восстановить из нее данные?

Формат .dbf, в котором хранятся базы данных, получил широкое распространение. Его используют такие СУБД и среды разработки приложений, как FoxPro, dBase IV, Clipper, 1С и другие. Как и любой файл, база данных в формате .dbf, также подвержена повреждению и риску быть непрочитанной. И если нет ее резервной копии, то это может обернуться полной потерей данных, что в некоторых случаях соизмеримо с катастрофой.

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

Как восстановить данные из поврежденной базы .dbf?

Представляем вашему вниманию специализированную утилиту для восстановления баз данных в формате .dbf – Recovery Toolbox for DBF. Она создана специально для работы с этим форматом хранения данных. Благодаря своему уникальному алгоритму анализа и чтения данных в поврежденных файлах .dbf, шансы на их удачное восстановление крайне высоки.

Основные возможности Recovery Toolbox for DBF:

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

Как работать с программой?

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

можно ли восстановить поврежденную базу DBF

Загрузка установочного файла

После скачивания запускаем его и устанавливаем, следуя указаниям мастера установки.

Утилита восстановления DBF файлов

Установка утилиты

Запускаем установленную программу через ярлык на рабочем столе. Откроется главное окно, в котором нужно сразу указать файл для восстановления и нажать кнопку “Анализировать”.

можно ли восстановить поврежденную базу DBF

Открываем файл для восстановления

можно ли восстановить поврежденную базу DBF

Подтверждение начала процесса восстановления

Спустя несколько минут, отобразится окно с данными, которые удалось прочитать в поврежденной базе данных. Их можно просмотреть.

данные из поврежденного файла .dbf

Содержимое поврежденной базы

После нажимаем кнопку “Далее”.

В следующем окне будет предложено указать расположение восстановленного файла и его имя.

Утилита восстановления DBF файлов

Указание имени восстановленной базы данных

В последнем окне останется задать формат базы, в которой будут сохранены восстановленные данные и нажать кнопку “Старт восстановления”.

процедура восстановления файла .dbf

Задание формата базы данных

Онлайн восстановление .dbf

Если под рукой нет компьютера или ноутбука, на который можно было бы установить программу Recovery Toolbox for DBF, то можете воспользоваться сервисом онлайн восстановления. Это можно сделать с любого устройства, на котором есть интернет и программа – браузер.

Единственное, что стоит учесть – данный сервис не восстанавливает Memo поля из связанных файлов, а также индексы.

Чтобы воспользоваться данным сервисом, нужно на него перейти по этой ссылке.

можно ли восстановить файл .dbf онлайн

Форма онлайн восстановления .dbf

Далее выполнить три действия:

  1. Указать файл для восстановления;
  2. Задать свою электронную почту;
  3. Ввести проверочные символы с картинки и нажать “Далее”.

Спустя немного времени, вам будет предоставлена ссылка для скачивания восстановленной базы данных .dbf.

Лучшая благодарность автору — репост к себе на страничку:

I have a VB.NET application that will let me preview .DBF files that come in from some of our clients. The application then attempts to spit out a CSV from this file that we can then use in our various environments.
This application worked under Windows XP 32 bit. Our company recently upgraded most of us to Windows 7 x64 which has caused this application to fail. I verified that the target build for this application is x86 and not «any CPU» and rebuilt the app but same issues occur.

It originally used System.Data.Odbc and connection.ConnectionString = "Driver={Microsoft dBASE VFP Driver (*.dbf)};SourceType = DBF;SourceDB=" & dbfSourcePath & ";Exclusive=No; Collate=Machine;BACKGROUNDFETCH=NO;".
The location of the failure is at connection.Open(). The error given is: «ERROR [IM001] [Microsoft][ODBC Driver Manager] Driver does not support this function».

I noticed that the drivers for VFP were not installed and that the Access DBF drivers did not work similar to the post here. The fix listed there is to install VFPro SP2, however, we do not have any FoxPro installs to install a service pack on top of. I then tried to install the OLEDB driver for VFP 9.0 and am now using System.Data.OleDb and connection.ConnectionString = "Provider=VFPOLEDB.1;SourceDB=" & dbfSourcePath & ";" but it now tells me that the connection.Open() line has this error: «Feature is not available».

I am at a complete loss as to how to get this application to work under Windows 7 x64.
Below are the 2 variants of the code with the file open path removed for readability (I have verified the path and file exist):

ODBC version:

Imports System.Data.Odbc
Dim strSelect As String
strSelect = "SELECT * FROM " & dbfSourceName
Dim connection As New Odbc.OdbcConnection
Dim adp As New Data.Odbc.OdbcDataAdapter
connection.ConnectionString = "Driver={Microsoft dBASE VFP Driver (*.dbf)};SourceType = DBF;SourceDB=" & dbfSourcePath & ";Exclusive=No; Collate=Machine;BACKGROUNDFETCH=NO;"
Dim command As New OdbcCommand(strSelect, connection)
connection.Open()          ' Here is where it throws the error.

OLEDB version:

Imports System.Data.OleDb
Dim strSelect As String
strSelect = "SELECT * FROM " & dbfSourceName
Dim connection As OleDbConnection = New OleDbConnection()
Dim adp As New Data.OleDb.OleDbDataAdapter
connection.ConnectionString = "Provider=VFPOLEDB.1;SourceDB=" & dbfSourcePath & ";"
Dim Command As New OleDbCommand(strSelect, connection)
connection.Open()          'Error occurs here.

How can I use either an OLEDB or ODBC connection to open these .DBF files under Windows 7 x64?

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при открытии файла coreldraw
  • Ошибка при открытии ворда 0xc0000142