Имя: Пароль:
1C
1С v8
XBASe не могу прочитать таблицу
,
0 rool
 
24.10.16
19:54
Пытаюсь прочитать dbf таблицу базы данных древней проги написанной на досовском foxpro 2.6

код перебора записей:

    ПутьКФайлу = ПутьКБазе + "\account.dbf";
    файл = Новый XBase();
    
    файл.ОткрытьФайл(ПутьКФайлу, , Ложь);
    
    кз = файл.КоличествоЗаписей();
    
    файл.Первая();
    
    Пока файл.Следующая() Цикл
    
    КонецЦикла;

файл.ОткрытьФайл() файл считывает вроде нормально: получаю коллекцию полей одной из строк таблицы. КоличествоЗаписей() возвращает актуальное количество строк таблицы, т.е. вроде все норм. но при любой попытке выполнить функции Первая(), Следующая() и любой другой навигации по таблице получаю возврат false, т.е. навигация нифига не работает.

Кто нибудь знает из-за чего может быть такая фигня и как собственно с ней бороться?
1 Лефмихалыч
 
24.10.16
21:23
А если каким-нить дбф-нафигатором открыть и пересохранить поверх?
2 Mauser
 
24.10.16
22:15
Все записи удалены и ОтображатьУдаленные = Ложь?
3 vde69
 
24.10.16
22:21
поищи мой патч реестра... выравнивание данных по DWORD
4 vde69
 
24.10.16
22:23
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase]
"DataCodePage"="ANSI"
"BDE"=dword:00000002
5 Mauser
 
24.10.16
23:02
(3) 1C не использует ни Jet, ей от этого "патча" даже не щекотно. Там внутри перепиленный CODEBASE с прямым чтением двоичных файлов.
6 Adilgeriy
 
24.10.16
23:11
(5) а выгрузить данные через фохпро в другую таблицу? там нужно данные в реальном времени? или можно перед запуском запроса запускать батник на выгрузку?
7 Mauser
 
24.10.16
23:13
(6) -> (0) =)
8 Torquader
 
24.10.16
23:51
Заголовок файла выложи (всё что в Dbf-файле до символа 0D) и можно будет понять, почему не ест - просто, несколько различные форматы были.
И читать надо не методами 1С (она сама всё делает неправильно), а через ADODB - если верно указать версию, то прочитается на Ура - было неоднократно проверено, особенно, если в файле есть индексы, а индексный файл не приложили.
9 Adilgeriy
 
25.10.16
00:21
(7) прочитал. и? создаешь таблицу в том формате которая читается. средствами фокспро запускаешь копирование из твое таблицы в новую и работаешь. или как (8) через Adodb
10 Mauser
 
25.10.16
00:30
(9) Чо ты мне-то втираешь? Иди ТС буди и ему вещай.
11 Adilgeriy
 
25.10.16
00:51
(10) сори думал ты  ТС:)
12 rool
 
25.10.16
20:19
(2) Спасибо, оно :)
Всем спасибо за ответы:) я уж думал XBASe фоксовские таблицы правильно не читает и ушел ADO DB курить :)