powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поключение к DBF, содержащим мемо-поля
20 сообщений из 20, страница 1 из 1
Поключение к DBF, содержащим мемо-поля
    #34517034
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть несколько таблиц DBF, часть из нимх содержит мемо-поля, и следственно существуют FPT файлы с такими же именами.
Не могу поключиться к таблицам через ADO (из VBA) ни с фоксовским драйвером, ни с DBASE-говорит, что внешняя таблица имеет не тот формат.
Пробовал в MSQuery построить запрос-тоже самое.
Самим фоксом тоже не открывается говорит, что или разрушена или не есть dbf.
Таблица не испорчена, так как успешно используется одной из програм.
Что-нибудь посоветуете?
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34517099
McKir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Если фокс говорит, что это не его таблица, то скорее всего так и есть. Я, надеюсь, пробуешь не FoxPro 2.5? :-)
2а. А что за программа использует эти файлы?
2б. По некоторым данным 1С использует модифицированную структуру фоксовых таблиц. Типа сами таблицы от от одной версии, а индексы от другой. При всей схожести, что-то мне подсказывает, чтоФокс ругнётся.
2в. Если смотреть по аналогии, программа может специально использовать такой формат, чтобы невозможно было её таблицы использовать со стороны.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34517150
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, это не 1С. Разработчик сказал, что у них нет проблем с тем, чтобы юзеры вели какую-то свою статистику и поэтому вроде всё должно работать.
Если это не фоксовские dbf то мемо файлы (fpt) у них всё равно будут?
Ну а DBase драйвер их тоже не признаёт.
Да забыл сказать, в одной из этих dbf 601 поле..., а некоторые открываются без проблем
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34517172
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А прога их пользует случаем не клипперная? Тогда файлы с более чем 254 полей открываться не будут.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34517226
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Увы... как мне сказали разработчики, они используют какую-то клипперовскую приблуду (аполо, чтоли), так что я даже и не знаю в каком направлении двигаться следует дальше.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34517444
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так а SQL- запрос -то я могу к таким DBF делать?
И какой драйвер использовать, если DBASE , Fox не работают?
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34521379
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не нужно мемо - попробуй ее поломать )
в 0-м байте в хекс редакторе напиши 03 (скорая?!) (не забудь сделать копию)
что делать запрос нужно открыть )
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34521569
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Clipper собственный формат файлов DBF. В общем случае, через FoxPro такие таблицы в принципе просматриваться не будут. Необходима именно утилита, разработанная под Clipper.

Я просто не представляю, как, даже при наличии драйвера ODBC, из FoxPro можно работать с таблицей, имеющей более 255 полей. Для FoxPro - это выходит за пределы системных ограничений.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34521984
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир я уже некоторое время не занимаюсь фоксом
не подскажете разницу между форматами клипера и фокса с мемо?
кажеться 0-й байт и еще какой то байт вот не помню какой
там насколько я помню эволюция не больно бурная была

работал с клиперовскими базами через фокс
2.6 версия насколько помню открывала на раз
даже если мемо поле было если в нем не копаться
вот 6.0 проблема с кодовой была
но там можно было СР - диалог отключить и все
через ОДБС не работал
но девушки на делфи 6 - открывали - копались - закрывали
драйвер нужен для дос

А вообще у меня склероз так что слушайте ВладимираМ )
не знаю как Вас меня он многому научил ....
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34521995
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУвы... как мне сказали разработчики, они используют какую-то клипперовскую приблуду (аполо, чтоли), так что я даже и не знаю в каком направлении двигаться следует дальше

найдите формат фоксовских таблиц в инете
он открыт и часто публикуется
причем с детализациями по версиям (и клипера в том числе (дбейс4?) )
сравните со своей приблудой и сломайте примерно так как я говорил
разница в формате будет не большая раз файлы без мемо открываються
всего то делов 32 байта заголовка и шапка ....

помню раньше паника была : файлы из 1С зашифрованы!!!!
в 1С алгоритм зашиты и шифрования поэтому оно медленно работает !!!!
ерунда все это просто в 0-м байте не 30 (хекс) а 03 (хекс) вот и все
короче говоря досовские файлы в кодировке винды
очень круто )))
открыл на низком уровне сломал - зашел нагадил ))) - закрыл -
открыл на низком вернул на место - сказал что ничего не трогал )))
шутка )
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34522263
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы. Сейчас сижу перевариваю и думаю с чего начать.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34522338
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, так..... 0 байт , по Вашему совету изменил.....DBFnavigator его уже открывает.
Сейчас попробую ч-з ADO...
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34522359
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Йесссссс. С DBase драйвером работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Респект, респект, респект, респект*1000000000 раз!!!!!!!!!!!!
А как бы мне вас попытать,многоуважаемые LEAF и ВладимирМ, как мне сделать программно замену 0 байта-потом запрос(это понятно)- потом возврат таблицы в исходное состояние.....????
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34522476
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот странная штука....... Программа работает с изменным заголовком у этого DBF....и после добавления записей в неё заголовок не меняет.....
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34522682
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу структуры файлов DBF для Clipper - я вообще не в курсе. Никогда не видел... Но просто заменить нулевой байт можно, если все прочие структуры в пределах системных ограничений FoxPro.

Например, длина одного поля в FoxPro не может превышать 255 символов потому, что в описании структуры поля под длину поля выделен 1 байт. А у Clipper длина одного поля может превышать 255 символов. Как они выкрутились - я не в курсе.

Количество полей в FoxPro не может быть больше 255, потому что в 10 и 11 байте записана общая длина одной строки. Т.е. для FoxPro предельная длина одной строки - это 256*256=65536. А для Clipper - это не предел. У него полей может быть больше 255.

Значит, он как-то по другому определяет общую длину одной записи. Правда, FoxPro не использует байты с 12 по 27, возможно, Clipper туда и записывает длину одной записи.

В общем, замена нулевого байта - это для любителей экстрима (повезет/не повезет). Либо для тех, кто очень хорошо понимает чем отличается формат DBF для Clipper и для FoxPro.

Для справки. Значения нулевого байта DBF, с которыми FoxPro работает без драйверов

HELP VFP9Тип файла:

0x02 FoxBASE

0x03 FoxBASE+/Dbase III plus, нет memo

0x30 Visual FoxPro

0x31 Visual FoxPro, поддержка свойства autoincrement

0x32 Visual FoxPro, поддержка полей типа Varchar, Varbinary, или Blob

0x43 dBASE IV SQL табличный файл, нет memo

0x63 dBASE IV SQL системный файл, нет memo

0x83 FoxBASE+/dBASE III PLUS, с memo

0x8B dBASE IV с memo

0xCB dBASE IV SQL табличный файл, с memo

0xF5 FoxPro 2.x (или младше) с memo

0xFB FoxBASE

Замечание
Visual FoxPro может работать со всеми перечисленными типами файлов как с собственными файлами без дополнительных драйверов и преобразований, но только в том случае, если все остальные структуры таблиц соответствуют системным ограничениям Visual FoxPro.

Замечание
При создании новых таблиц в Visual FoxPro значение данного байта устанавливается в одно из трех значений: 0x30, 0x31 или 0x32 в зависимости от факта использования соответствующих типов полей. В случае добавления, удаления или изменения полей произойдет и модификация данного байта, если необходимо.


Кстати, поиск по интернету дал кучу всевозможных утилит по правке файлов DBF. Может, просто скачать какую-нибудь из них и не мучится с изменением структуры?
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34522719
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если склероз мне не изменяет для клиппера тоже есть ODBC .
Во всяком случае были.
В свое время занимался стыковкой Sybase-Clipper намучался с поиском - но нашел.Кажется производитель Мирант (точно не помню).Еще клипперные ODBC шли с PowerBuilder oт Sybase.Но полностью правильно работали именно Мирантовские драйвера, стандартные как-то плохо писали в индексы.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34523027
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по 0 байту стояло F5-т.е. fox c мемо, сейчас поставил 03 (в остальных дбф остаётся F5)
но т.к. полей >255 (601) к нему получается подключиться только ч-з DBASE драйвер (соответственно мемо -поля -без информации).
Если я ставлю 83 (Dbase c мемо) пишет, что "не удается найти затребованный файл MEMO XBASE"
На клиппер ODBC драйвер нигде не встречал. И где-то вычитал, что Клиппер использует DBASE драйвер.
Разаработчик, как я говорил, использует компоненты прямого доступа.
Как этот прямой доступ организуется- я плохо себе представляю. Т.Е. SQL инструкции (хотя бы Select) не будут в этом случае работать?
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34523766
В Clipper-е длина текстового поля указывается в 16-м и 17-м байтах. 17-й - тот, что для чисел указывает кол-во десятичных знаков. Формула: b16+256*b17.
Т.е. для длины 260 симв. будет 4 и 1.
Вьюер dBase такой файл показавает, но из этого поля покажет 4 (или 3+пробел) символа, а в следующих полях будет ерунда, а в свойствах полей длина = 4.
Длина записи также не должна превышать 256*256=65536 байт, но это может быть и 65535 полей по 1-му байту, и одно текстовое длиной 65536.
Других отличий от dBaseIII нет. Мемо поля (DBT) предполагаютя, но таких комбинаций (длинные текстовые поля + мемо я не встречал), а без них это обычный dBaseIII (0x03 или 0xB3), если не считать макс. кол-во полей.
То, что у вопрошающего - FPT, видимо стратегия Apollo.
Я видел его файл с 600 полей. Там нет длинных текстовых полей. Возможно как Clipper - модификация dBase, так Apollo - FoxPro. Я так мысляю.

Теперь просьба. Меня заинтересовало вот это:
ВладимирМ0x31 Visual FoxPro, поддержка свойства autoincrement
0x32 Visual FoxPro, поддержка полей типа Varchar, Varbinary, или Blob
Я не работаю в FoxPro, но сочинил класс для доступа к DBF из VB/VBA. До сих пор думал, что VFP DBF всегда имеет признак 0x30, а признак системного поля, хранения двоичных данных и значения Null указывается в 28-м байте описания поля.
Если не трудно, пришлите мне примеры таких файлов (DBF, FPT) на krivtsov@computerplus.com.ua или сюда. Ну очень интересно!
Вероятно это спецификация для VFP свежее 3.0 версии. Вот бы еще и описание структыры DBF для них.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34524169
Graers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий, я где-то читал Ваше сообщение о написанном Вами классе, но найти его не смог, видимо удалили уже.
Нельзя ли по электронке его...как-нибудь...graers@rambler.ruю
А то понятия не имею как из VBA это осуществить, а задача как раз стоит именно для VBA.
Все-таки менять описание таблицы это не то чуть-чуть. И после изменения DBFNavigator мемо поля видит пустыми.
...
Рейтинг: 0 / 0
Поключение к DBF, содержащим мемо-поля
    #34524772
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев )
Теперь просьба. Меня заинтересовало вот это:
ВладимирМ0x31 Visual FoxPro, поддержка свойства autoincrement
0x32 Visual FoxPro, поддержка полей типа Varchar, Varbinary, или Blob
Я не работаю в FoxPro, но сочинил класс для доступа к DBF из VB/VBA. До сих пор думал, что VFP DBF всегда имеет признак 0x30, а признак системного поля, хранения двоичных данных и значения Null указывается в 28-м байте описания поля.
Если не трудно, пришлите мне примеры таких файлов (DBF, FPT) на krivtsov@computerplus.com.ua или сюда. Ну очень интересно!
Вероятно это спецификация для VFP свежее 3.0 версии. Вот бы еще и описание структыры DBF для них.

Да, поддрежка autoincrement была введена в версии VFP8, а поля типа VarChar, VarBinary и BLOB - в версии VFP9.

Однако даже если таблица создана в VFP9, но не использует ни автоинкрементых полей, ни полей типа Varchar, Varbinary, или Blob, то нулевой байт будет иметь значение 0х30. Другими словами нулевой байт определяет факт использования некоторых типов полей в данном файле DBF, но не может однозначно указать на версию FoxPro в которой он был создан.

Подробно структура файлов DBF для Visual FoxPro описана здесь

Структура табличного файла (.dbc, .dbf, .frx, .lbx, .mnx, .pjx, .scx, .vcx)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поключение к DBF, содержащим мемо-поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]