Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > странная dbf


Автор: Graers 14.6.2007, 07:48
Прошу помощи (совета) в такой вот связи: 
Есть dbf состоящая из 600 полей. Постояно возникает необходимость создания запросов к ней при помощи VBA. Драйвера VFP не видят этот файл как таблицу dbf. DBASe тоже не позволяет с ней работать т.к. в заголовке у неё стоит F5. 
Существуют ли какие способы работы с такими вот dbf на предмет создания к ним запросов, поключений?

Автор: Cashey 14.6.2007, 13:03
попробуй через OLE DB. ODBC глючит при работе с локальными таблицами, ей контейнер БД подавай

Автор: nitr 14.6.2007, 22:25
Graers, вам верно подсказали, вы загляните ещё на форум VBA, там были примеры работы с БД через OLE DB (это конечно если вы не знаете как).
А по идее - даже Excel может открыть такую БД. А что значит ваш F5, в hex? smile Я такие видел только у файликов Foxuser.dbf ...

Автор: Данкинг 14.6.2007, 22:51
А как сиё возможно, в DBF же только 254 поля может быть?!  smile 

Автор: Cashey 15.6.2007, 08:58
Цитата(Данкинг @  14.6.2007,  23:51 Найти цитируемый пост)
А как сиё возможно, в DBF же только 254 поля может быть?!  

я подумал, что речь идет о записях, а не о полях
хотя лучше получить пояснения у автора вопроса......

Автор: Graers 15.6.2007, 11:43
Именно о полях идёт речь
полей-601.
вот такая dbf...
Ч-з OLE DB-нужно все равно нужно указывать провайдера.
Как только указываю провайдером фокса то таблица сразу попадает в разряд "не фоксовских" из-за числа полей.
Если ломаю заголовок на DBASE (типа 0Х03), то теряю мемо-поля . Некоторые редакторы успешно открывают эту таблицу, в т.ч. видят и мемополя.
Так что выхода не видится мне.

Автор: nitr 15.6.2007, 12:48
Тогда может стоит выложить эту dbf-ку? smile
Я тож несразу заметил слово "полей"...

Автор: Graers 15.6.2007, 13:04
выложил пустую

Автор: nitr 15.6.2007, 15:51
"тупо" открылся в Excel'е, предпоследний столбец "TEMPLATE"

Автор: Данкинг 15.6.2007, 20:27
Фокс пишет, что мемо-поле испорчено. А как вообще создали такую таблицу?!

Автор: Graers 15.6.2007, 20:34
Да понятно,что ексель тупо откроет свое кол-во полей(по кол-ву имеющихся у него столбцов)- вопрос не в этом.

Добавлено через 2 минуты и 35 секунд
Мемо мож пишет из-за того, чтоя его в хексе удалял.
Фокс- мне по идее вообще не видит её как таблицу.
Попробую в понед. непустую выложить.
Создавали из дельфей, при помощи компонента прямого доступа

Автор: nitr 15.6.2007, 22:26
Цитата(Graers @  15.6.2007,  20:34 Найти цитируемый пост)
Да понятно,что ексель тупо откроет свое кол-во полей(по кол-ву имеющихся у него столбцов)- вопрос не в этом.


Graers,  открылось 218 столбцов, а не сколько может Excel, а он может 258, странно...

Автор: Graers 18.6.2007, 07:38
Цитата(nitr @  15.6.2007,  22:26 Найти цитируемый пост)
Graers,  открылось 218 столбцов, а не сколько может Excel, а он может 258, странно...

Ага, действительно, фигня какая-то...
Сейчас другую положу

Автор: mutex 24.6.2007, 11:53
Graers, это самопальный ДБФ. Стандарт допускает до 255 полей в записи. Следовательно, ни один из стандартных методов доступа типа ADO, BDE или сторонних компонентов не подойдут. Надо все делать ручками, т.е. работать на уровне двоичного файла. Изучайте формат DBF-файла. Структуру записей Вашего файла прилагаю в архиве ARCHIV_STRUCT.zip

Автор: Graers 27.6.2007, 12:16
Спасибо. Структура у меня есть. Понятно-будем думать в этом направлении

Автор: Cashey 10.7.2007, 09:23
Access'ом она открывается.
Попробуй коннектится к ней через драйвер access

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)