Проблемы с dBase (dbf-файлы)

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Проблемы с dBase (dbf-файлы)

Сообщение alibek » 23.05.2005 (Пн) 17:23

Раз уж тут эта тема начала затрагиваться.

Была у меня однажды непонятная проблемка.
Написал я программу, которая использовалась для ввода определенных документов. При этом документы должны были передаваться в виде DBF-файла.

Программа работала на моей машине и на машинах пользователей. Но на некоторых компах были глюки -- не виделись длинные имена файлов. Т.к. если я осуществлял импорт из файла data-2005-05-23.dbf, то в программе вылезала ошибка, что не найден файл DATA-2~1.DBF.
Установка MDAC и сервис-паков для Jet не помогала, я вообще не обнаружил закономерности при выползании этой ошибки (иногда не работало на Windows XP, иногда на Windows 9x). Я над этим багом маялся неделю, а потом сделал копирования импортируемого файла в TEMP-каталог с коротким именем (TEMP.DBF). Но все же интересно, что это было?
Lasciate ogni speranza, voi ch'entrate.

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 24.05.2005 (Вт) 10:23

Дык, известно что - имена dbf файлов должны соответствовать DOS формату(8.3): не более 8 символов на имя файла + не более трёх на расширение...

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Проблемы с dBase (dbf-файлы)

Сообщение codemaster » 24.05.2005 (Вт) 10:40

Такое глюкалово наблюдалось на немецкой XP
с цепляемыми профилями пользователя.

Лечилось переобределением каталога TEMP для пользователя
в более короткий -> C:|temp

После недельных разбирательств с пользователямии руководством я никогда больше не пользаю ADO для доступа к DBF

Как правило этот раритетный формат пользуется для обмена данными
в этом случае проще написать свой парсер DBF.

Если волею судеб требутся пользовать DBF как БД то самый лучший выбор - CODEBASE от http://www.sequiter.com/
По быстродействию ADO отдыхает.
//<-
Mit freundlichen Grüßen
//->

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.05.2005 (Вт) 10:56

Gloom писал(а):Дык, известно что - имена dbf файлов должны соответствовать DOS формату(8.3): не более 8 символов на имя файла + не более трёх на расширение...

Не совсем так.
На свежеустановленной системе, а так же на большинстве друних машин длинные имена понимались превосходно.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Проблемы с dBase (dbf-файлы)

Сообщение alibek » 24.05.2005 (Вт) 10:58

codemaster писал(а):Лечилось переобределением каталога TEMP для пользователя в более короткий -> C:|temp

Возможно, кстати.
Не помню, что было на тех машинах, на своей я всегда TEMP определяю в C:\TEMP

codemaster писал(а):После недельных разбирательств с пользователямии руководством я никогда больше не пользаю ADO для доступа к DBF

Я тогда использовал DAO :)

В принципе, согласен, обычно DBF используется только для переноса данных и парсер, который обеспечивал бы необходимую функциональность, написать несложно.
Lasciate ogni speranza, voi ch'entrate.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Проблемы с dBase (dbf-файлы)

Сообщение codemaster » 24.05.2005 (Вт) 11:04

alibek писал(а):Возможно, кстати.
Не помню, что было на тех машинах, на своей я всегда TEMP определяю в C:\TEMP.

Это конечно правильно но когда пользователь логинится то
TEMP пользуется несколько иной
посмотри в настройках системы "переменные среды"
если не ошибаюсь
//<-
Mit freundlichen Grüßen
//->

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.05.2005 (Вт) 11:40

По дефолту -- да.
На практике же, системный TEMP я назначаю в C:\WINDOWS\TEMP, а пользовательский в C:\TEMP (причем указываю это в ветке HKEY_USERS\DEFAULT, чтобы действовало на всех новых пользователей).
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron