|
|
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Есть несколько таблиц DBF, часть из нимх содержит мемо-поля, и следственно существуют FPT файлы с такими же именами. Не могу поключиться к таблицам через ADO (из VBA) ни с фоксовским драйвером, ни с DBASE-говорит, что внешняя таблица имеет не тот формат. Пробовал в MSQuery построить запрос-тоже самое. Самим фоксом тоже не открывается говорит, что или разрушена или не есть dbf. Таблица не испорчена, так как успешно используется одной из програм. Что-нибудь посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 17:02 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
1. Если фокс говорит, что это не его таблица, то скорее всего так и есть. Я, надеюсь, пробуешь не FoxPro 2.5? :-) 2а. А что за программа использует эти файлы? 2б. По некоторым данным 1С использует модифицированную структуру фоксовых таблиц. Типа сами таблицы от от одной версии, а индексы от другой. При всей схожести, что-то мне подсказывает, чтоФокс ругнётся. 2в. Если смотреть по аналогии, программа может специально использовать такой формат, чтобы невозможно было её таблицы использовать со стороны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 17:19 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Нет, это не 1С. Разработчик сказал, что у них нет проблем с тем, чтобы юзеры вели какую-то свою статистику и поэтому вроде всё должно работать. Если это не фоксовские dbf то мемо файлы (fpt) у них всё равно будут? Ну а DBase драйвер их тоже не признаёт. Да забыл сказать, в одной из этих dbf 601 поле..., а некоторые открываются без проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 17:31 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
А прога их пользует случаем не клипперная? Тогда файлы с более чем 254 полей открываться не будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 17:38 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Увы... как мне сказали разработчики, они используют какую-то клипперовскую приблуду (аполо, чтоли), так что я даже и не знаю в каком направлении двигаться следует дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 17:51 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Так а SQL- запрос -то я могу к таким DBF делать? И какой драйвер использовать, если DBASE , Fox не работают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 19:12 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
если не нужно мемо - попробуй ее поломать ) в 0-м байте в хекс редакторе напиши 03 (скорая?!) (не забудь сделать копию) что делать запрос нужно открыть ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 00:39 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
У Clipper собственный формат файлов DBF. В общем случае, через FoxPro такие таблицы в принципе просматриваться не будут. Необходима именно утилита, разработанная под Clipper. Я просто не представляю, как, даже при наличии драйвера ODBC, из FoxPro можно работать с таблицей, имеющей более 255 полей. Для FoxPro - это выходит за пределы системных ограничений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 12:31 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Владимир я уже некоторое время не занимаюсь фоксом не подскажете разницу между форматами клипера и фокса с мемо? кажеться 0-й байт и еще какой то байт вот не помню какой там насколько я помню эволюция не больно бурная была работал с клиперовскими базами через фокс 2.6 версия насколько помню открывала на раз даже если мемо поле было если в нем не копаться вот 6.0 проблема с кодовой была но там можно было СР - диалог отключить и все через ОДБС не работал но девушки на делфи 6 - открывали - копались - закрывали драйвер нужен для дос А вообще у меня склероз так что слушайте ВладимираМ ) не знаю как Вас меня он многому научил .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 21:58 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
авторУвы... как мне сказали разработчики, они используют какую-то клипперовскую приблуду (аполо, чтоли), так что я даже и не знаю в каком направлении двигаться следует дальше найдите формат фоксовских таблиц в инете он открыт и часто публикуется причем с детализациями по версиям (и клипера в том числе (дбейс4?) ) сравните со своей приблудой и сломайте примерно так как я говорил разница в формате будет не большая раз файлы без мемо открываються всего то делов 32 байта заголовка и шапка .... помню раньше паника была : файлы из 1С зашифрованы!!!! в 1С алгоритм зашиты и шифрования поэтому оно медленно работает !!!! ерунда все это просто в 0-м байте не 30 (хекс) а 03 (хекс) вот и все короче говоря досовские файлы в кодировке винды очень круто ))) открыл на низком уровне сломал - зашел нагадил ))) - закрыл - открыл на низком вернул на место - сказал что ничего не трогал ))) шутка ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 22:17 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. Сейчас сижу перевариваю и думаю с чего начать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 08:44 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Так, так..... 0 байт , по Вашему совету изменил.....DBFnavigator его уже открывает. Сейчас попробую ч-з ADO... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 09:27 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Йесссссс. С DBase драйвером работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Респект, респект, респект, респект*1000000000 раз!!!!!!!!!!!! А как бы мне вас попытать,многоуважаемые LEAF и ВладимирМ, как мне сделать программно замену 0 байта-потом запрос(это понятно)- потом возврат таблицы в исходное состояние.....???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 09:36 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Вот странная штука....... Программа работает с изменным заголовком у этого DBF....и после добавления записей в неё заголовок не меняет..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 10:12 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
По поводу структуры файлов 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. Может, просто скачать какую-нибудь из них и не мучится с изменением структуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 11:11 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Если склероз мне не изменяет для клиппера тоже есть ODBC . Во всяком случае были. В свое время занимался стыковкой Sybase-Clipper намучался с поиском - но нашел.Кажется производитель Мирант (точно не помню).Еще клипперные ODBC шли с PowerBuilder oт Sybase.Но полностью правильно работали именно Мирантовские драйвера, стандартные как-то плохо писали в индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 11:19 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
по 0 байту стояло F5-т.е. fox c мемо, сейчас поставил 03 (в остальных дбф остаётся F5) но т.к. полей >255 (601) к нему получается подключиться только ч-з DBASE драйвер (соответственно мемо -поля -без информации). Если я ставлю 83 (Dbase c мемо) пишет, что "не удается найти затребованный файл MEMO XBASE" На клиппер ODBC драйвер нигде не встречал. И где-то вычитал, что Клиппер использует DBASE драйвер. Разаработчик, как я говорил, использует компоненты прямого доступа. Как этот прямой доступ организуется- я плохо себе представляю. Т.Е. SQL инструкции (хотя бы Select) не будут в этом случае работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 12:49 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
В 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 для них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 15:56 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Анатолий, я где-то читал Ваше сообщение о написанном Вами классе, но найти его не смог, видимо удалили уже. Нельзя ли по электронке его...как-нибудь...graers@rambler.ruю А то понятия не имею как из VBA это осуществить, а задача как раз стоит именно для VBA. Все-таки менять описание таблицы это не то чуть-чуть. И после изменения DBFNavigator мемо поля видит пустыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 17:30 |
|
||
|
Поключение к DBF, содержащим мемо-поля
|
|||
|---|---|---|---|
|
#18+
Анатолий ( Киев ) Теперь просьба. Меня заинтересовало вот это: ВладимирМ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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 23:23 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34524772&tid=1589350]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
87ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 458ms |

| 0 / 0 |
