1с не умеет читать dbf файлы V FoxPro 9

1. WiseSnake 1521 14.01.11 14:34 Сейчас в теме
Собственно кто нибудь знает как их 1ской прочитать проще?
Сова; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. hogik 443 17.01.11 17:37 Сейчас в теме
(1)
Прочесть - СУБД "Advantage 9.1" и её ODBC.
http://devzone.advantagedatabase.com/dz/content.aspx?key=31
Читать регулярно - придётся её покупать.
WiseSnake; +1 Ответить
11. WiseSnake 1521 17.01.11 18:29 Сейчас в теме
Спасибо за участие hogik!
(7) Это я смотрел! Остается как вариант. Но это серьезная весч применяется по большому счету для другого, не хотелось бы использовать слона чтобы просто прочитать файлы. К тому же не факт что она сможет прочитать, хотя так как ADS хорошо спровождается то думаю сможет... но не факт. По этому пока рассматриваю другие варианты.

(9) Вот это я пока не видел, а может пропустил в силу своего незнания. Сейчас буду смотреть, но точно не знаю как это подключить к 1с )))))
13. Ish_2 1112 17.01.11 18:38 Сейчас в теме
(11) А сам -то файл не левый ? Я читаю его FOX 6.0 - меняю структуру, ввожу новыне записи.
При попытке повторного открытия после выхода из FOXPRO 6.0 - вылетает c предлождением отправить отчет в MS. Что-то странное.
Прикрепленные файлы:
2. WiseSnake 1521 17.01.11 16:40 Сейчас в теме
Апну...

Всем лень в это ввязываться или правда никто не знает что с этим можно поделать?
3. KapasMordorov 428 17.01.11 16:53 Сейчас в теме
4. WiseSnake 1521 17.01.11 16:58 Сейчас в теме
(3)Примеры есть? Те что я нашел не работают. Заранее спасибо!
5. Арчибальд 2709 17.01.11 17:05 Сейчас в теме
После FoxPro 5 не пользовался...
6. WiseSnake 1521 17.01.11 17:11 Сейчас в теме
За внятные объяснения или примеры, которые действительно помогут, я готов заплатить (разумные суммы конечно, как за консультации)
8. Ish_2 1112 17.01.11 17:50 Сейчас в теме
Не понял вопроса.
Через ADO не получается ?
Или просто нужен пример строки соединения для ADO , чтобы обратиться к dbf ?
- Поиск на ИС или google "ADO строка соединения dbf" . Должны быть примеры.
10. WiseSnake 1521 17.01.11 18:16 Сейчас в теме
(8) Не просто dbf а Visual FoxPro причем раньше файлы этого формата читались, сейчас после обновления базы (разработчики перешли на Visual FoxPro 9)... после этого 1с, например, просто вылетает с ошибкой, те примеры подключения через ADO, что я нашел так же выдают ошибки. Причем это проявляется не для всех файлов. Разработчики высказали мнение что это может быть связано "с полями формата Visual FoxPro 9" (цитата)

P.S. Вот пример пустого файла который не могу открыть:
Прикрепленные файлы:
CFVDD.DBF
12. hogik 443 17.01.11 18:34 Сейчас в теме
(10)
Файл нормально открылся в "Advantage Data Architect 9.10".
Добавил запись...
Прикрепленные файлы:
CFVDD.DBF
14. WiseSnake 1521 17.01.11 18:44 Сейчас в теме
(12) Это радует, немножко
(13) Не левый

Попробую пока с (9) разобраться.
15. hogik 443 17.01.11 19:53 Сейчас в теме
(14)
Вот, думаю, полезная информация.
Прикрепленные файлы:
DBF.rar
fduchuy; Арчибальд; MaxDavid; WiseSnake; +4 Ответить
16. WiseSnake 1521 17.01.11 21:05 Сейчас в теме
(15) Опять спасибо! Почитаю. Владимир с меня Вам точно причетается ;)
Кстати, дело немного сдвинулось с места я смог прочитать многие файлы, кроме (как обычно) самого важного. При его открытии выдает ошибку типа "Microsoft OLE DB Provider for Visual FoxPro): Variable 'KLN_RPC' is not found.", причем имя файла R_RPC, скинуть его не могу, там слишком много ценной информации. Не думал что в dbf есть переменные *чешу репу*.

P.S. Кстати инфа на первый взгляд довольно интересная, думаю не только мне пригодиться
20. hogik 443 17.01.11 22:49 Сейчас в теме
(16)
Переименуйте файл DBF перед обработкой в Вашей программе. ;-)
21. WiseSnake 1521 17.01.11 23:12 Сейчас в теме
(20) Ну это было первой моей мыслью... вообщем при переименовании в любое имя все равно выдает абсолютно ту же ошибку (включая и имя переменной). Другие файлы с подобными именами открывает...

Я строку коннекта максимально упростил... сейчас с ней ковыряюсь... может что недоуказал )))

(17)(18)(19) Ну когда искал информацию я узнал, что у DBF вообщем то нет четкого стандарта, а учитывая что foxpro детище мелкософта... ну сами понимаете...
22. hogik 443 17.01.11 23:24 Сейчас в теме
(21)
Скачайте, установите "Advantage Data Architect 9.10" и гляньте таблицу в части имен и типов полей. Сам сервер можно не устанавливать - оно нормально работает в режиме "локал сервер" (бесплатно). Или сделайте таблице команду ZAP ;-) и положите на форуме. Я скачаю и гляну...
23. WiseSnake 1521 17.01.11 23:48 Сейчас в теме
(22) Ну DBF Viewer 2000 нормально юзает этот Файл, в нем я посмотрел уже поля, там даже намека нет на подобные поля...
Я с помощью него усек файл, вот:
Прикрепленные файлы:
LLL.DBF
25. hogik 443 18.01.11 00:06 Сейчас в теме
(23)
В "Advantage Data Architect 9.10" не открывается. Ошибка #7008. Хочет иметь еще FPT Memo Files.
26. WiseSnake 1521 18.01.11 00:13 Сейчас в теме
27. WiseSnake 1521 18.01.11 14:02 Сейчас в теме
В продолжение (16)
Вот что ответили разработчики:

в таблице R_RPC в индексном выражении переменная 'KLN_RPC'
само поле NAM длинное, вроде 254 знака
чтобы индекс по этому полю был не длинным, сделали эту переменную
переменная определяется в коде программе
для большинства пользователей KLN_RPC = 10
короче создай публичную переменную, инициализируй ее и должно все открыться

Может кто подскажет как создать переменную?
Код примерно такой:

Каталог = "I:\alg\r\";
DBConn = Новый COMОбъект("ADODB.Connection");
DBConn.Open("Provider=VFPOLEDB.1;Data Source=" + Каталог+ ";");
//DBConn.Execute("*вот тут мне кажется надо объявлять переменную*");
DBFBase = DBConn.Execute("Select * from [LLL.DBF]");
30. WiseSnake 1521 18.01.11 17:17 Сейчас в теме
(27) Уряяя получилось благодаря Владимиру (hogik)
Вот какой код я "накалякал":

Каталог = "I:\alg\r\";// каталог базы
DBConn = Новый COMОбъект("ADODB.Connection");
ADOCommand = Новый COMОбъект("ADODB.Command");
// подключаемся к каталогу
DBConn.Open("Provider=VFPOLEDB.1;Data Source=" + Каталог+ ";");
// обявляем публичную переменную
ADOCommand.ActiveConnection = DBConn;
ADOCommand.CommandText = "EXECSCRIPT('PUBLIC KLN_RPC')";
ADOCommand.Execute();
ADOCommand.CommandText = "EXECSCRIPT('KLN_RPC=10')";
ADOCommand.Execute();
// собственно само подключение к файлу и выборка
DBFBase = DBConn.Execute("Select * from [LLL.DBF]");
Alexander2008; MaxDavid; +2 Ответить
17. tango 545 17.01.11 22:29 Сейчас в теме
прикольно

а второй рисунок - так его открывает ексель
Прикрепленные файлы:
18. tango 545 17.01.11 22:35 Сейчас в теме
такое чувство, что разработчики формата послали нах какое-то соглашение, которое делает формат уже не дбф
19. tango 545 17.01.11 22:37 Сейчас в теме
сорри, его не может открыть даже это:
Прикрепленные файлы:
24. WiseSnake 1521 18.01.11 00:00 Сейчас в теме
Мемо файл выкладываю полностью(без него у меня ошибку с мемо полями выдает) там все равно ничего интересного нет... и обрезать его мне не удалось

Упс.. не выкладывается, странно там всего 2 мегабайта ((
28. KapasMordorov 428 18.01.11 15:00 Сейчас в теме
Не знаю как в 9-м Fox'e
а вот в 2.х можно было в индексе применить функцию. Соответственно наверно можно и публичную переменную.
Т.е. выражение индекса сделали подобно LEFT(NAM,KLN_RPC).

Что с этим делать в 1С, понятия не имею. Проще сделать копию файла и пересоздать индекс без таких выражений.
29. WiseSnake 1521 18.01.11 16:15 Сейчас в теме
(28) Мне надо работать с рабочим файлом... делать это надо постоянно... разовые решения не подходят.
Чувствую что задача должна решатся просто... знать бы как )))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот