|
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 курить :)
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой