Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 605

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Подскажите, пожалуйста, как поступить в следующей ситуации: на предприятии есть программный комплекс (состоящий из нескольких частей), написанный на FoxPro 2.5 (для DOS). БД - dbf, индексы - cdx. В настоящее время поставлена задача сделать все на Delphi+MS SQL. Объем работы большой, одновременно все части переделать не получится. Но работоспособность системы в целом необходимо сохранить. Поэтому нужно сделать работу из Delphi с базами FoxPro DOS. Пробовал через BDE - там проблемы с кодовыми страницами. Через ADO (драйвер Microsoft Dbase) все работает замечательно, но только на неиндексированных таблицах. С индексированными таблицами не проходит изменение таблиц. Писать связку на FoxPro не сильно хочется(существенно увеличивает задачу по времени).
С уважением.

Мережников Андрей Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Мережников Андрей (статус: Абитуриент)
Вопрос отправлен: 21 мая 2008, 17:24
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, Мережников Андрей!
Не знаю поможет ли, но однажды сам столкнулся с проблемой кодировок в DBF под BИВУ.
Опытным путем выяснил, что 30 байт от начала файла в DBF судя по всему отвечает за кодировку.
В моем случае кодировка была виндовая, и туда нужно было прописывать символ "W" (57h).
Поищите или поэкспериментируйте, может поможет.
Успехов!

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 21 мая 2008, 18:36
Оценка за ответ: 2

Комментарий к оценке: С кодировкой проблему я решил через ADO (об этом написано в вопросе).Но драйвер ODBC для DBase, различная структура индексов (в Fox - cdx,а в DBase - mdx),Поэтому проблема при одновременной работе с индексированными таблицами

Ответ #2. Отвечает эксперт: Помфюк Владимир Степанович

Здравствуйте, Мережников Андрей!
попробуйте через TDBF (http://tdbf.sourceforge.net/). В случае чего там есть исходник - можно добавить вызовы OEMtoANSI и ANSItoOEM где надо.

Ответ отправил: Помфюк Владимир Степанович (статус: Абитуриент)
Время отправки: 22 мая 2008, 11:10
Оценка за ответ: 3

Комментарий к оценке: Обязательно попробую через tdbf. OemToAnsi и OemToChar я пробовал - результат удивил - нормального преобразования не происходит. И это не решает проблемы с индексами. Видимо придется писать примочку на Fox :-(

Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 25 сентября 2008, 22:22; участников в обсуждении: 4.
ANBsoft

ANBsoft (статус: Студент), 21 мая 2008, 18:38 [#1]:

ВИВУ - имелось в виду BDE :).
ANBsoft

ANBsoft (статус: Студент), 22 мая 2008, 08:13 [#2]:

Ну если Вы решили проблему, то чего здесь вопросы задаете?
А если не решили, то почему не хотите попробовать посоветованное?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 22 мая 2008, 16:10 [#3]:

Александр Николаевич, проблему я пока не решил, потому и задал вопрос. Изменение значения указанного Вами байта можно сделать проще (открыть таблицу в Visual FoxPro и указать кодовую страницу), но это не решает проблемы с индексными файлами.
Помфюк Владимир Степанович

Помфюк Владимир Степанович (статус: Абитуриент), 22 мая 2008, 17:48 [#4]:

что значит "нормального преобразования не происходит"? а какое происходит? что на что меняется?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 23 мая 2008, 05:37 [#5]:

Например в таблице dbf (кодировка 866) написано слово "Зарплата". При открытии в Delphi (через BDE, например) на экране абракадабра (что естественно) после применения OemToAnsi получается что-то вроде "За?@аа" (извините,точно не помню. Посмотрю на работе, вечером напишу точнее)
Anton (w)

Anton (w) (статус: Посетитель), 25 сентября 2008, 10:03 [#6]:

А компонент Halcyon пробовали для открытия DBF?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 25 сентября 2008, 22:22 [#7]:

нет, такой компонент не пробовал. я решил проблему по другому - на VFP написал утилиту экспорта данных из DBF в MS SQL, а дальше - Delphi+ADO

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.02 сек.