Страница 1 из 1

Добавлено: 06 Май 2004, 19:10
Гость
Приветствую всех!

Подруга попросила написать для нее простенький конвертер: из одного dbf
в другой, меняя имена некоторых полей и размерность некоторых полей,
типа decimal(10.5) в decimal(10.0).
Написал. Работает. Подруга счастлива.
Проходит неделя и конвертер отказывается работать: invalid record
declaration - во входном dbf поменялся порядок полей (количество и
названия остались прежними).

Вопрос: неужто придется при каждом изменении порядка полей менять
описание файла в исходнике и перекомпилировать программу? Я бы не
удивился, если бы подобное произошло с dat или tps, но никак не ожидал,
что так по-свински себя поведет драйвер dbase3 из cw5508.

Или я чего-то не учел, и все-таки имеется возможность работать одним
описанием структуры с файлами разной структуры? (еще раз: названия, размерности и количество полей не меняются, поменялся только порядок)

--
С.А.

(Добавление)

Юзай ODBC. Будешь работать с именами полей, а не с их смещениями в записи.

WBR, Nick Tsigouro. MailTo:Nick@arsis.ru

Гм... Как я понимаю, для этого надо на каждой машине этот самый odbc
настраивать? А без настройки можно как-нибудь обойтись?
--
С.А,
Написал: ClaList(2)

Добавлено: 07 Май 2004, 9:58
Гость
Есть много описаний DBF-формата - попробуй разберись.
Или найди либу от Философова специально для Клариона - там работа идет именно с именами полей. Да и идет она в исходниках - удобно!

=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)

Добавлено: 07 Май 2004, 10:25
Гость
Добрый день.
Вчера кто-то спрашивал про проблемы конвертации DBF-файлов (поменялся порядок полей). К сожалению, письма не сохранились, точнее, остались дома ;). Олег Руденко предложил библиотеку работы с dbf Юрия Философова, я же добавлю DPQuery. Пример в аттаче. В переменной request - запрос, в котором можно менять порядок полей как хошь, при желании хоть в рантайме.

С уважением, Михаил
Написал: ClaList(2)