Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2009, 07:31   #1
solyr
 
Регистрация: 28.11.2009
Сообщений: 6
Вопрос dBASE RUS cp866 и Delphi

У меня проблема с выводом данных из таблиц dbf файлов в Delphi. Дана таблица с данными в досовской кодировке. Пытаюсь сделать так что бы в DBGrid все нормально отобраджалось без конвертации кодировок. Я подключаю dbf файлы через драйвер BDE DBASE. В опции соединения прописываю LANGDIRVER = dBASE RUS cp866. Даже в DBGrid устанавливаю шрифты System или Fixedsys. Бесполезно строковые данные отображаются как решотки. Посоветуте что делать?

Последний раз редактировалось solyr; 28.11.2009 в 07:33.
solyr вне форума Ответить с цитированием
Старый 28.11.2009, 08:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не буду 100% утверждать, но, помнится, ВРОДЕ БЫ была там такая проблемка - пока у DBF файла НЕТ индекса, BDE игнорировало признак кодовой страницы... попробуйте создать индекс...

Цитата:
В опции соединения прописываю LANGDIRVER = dBASE RUS cp866
Не забыли прописать langdriver ещё в:
"BDE Administrator" - Configuration - System - INIT ()
"BDE Administrator" - Configuration - Drivers - Native - DBase
да ещё и здесь не помешает:
"BDE Administrator" - Configuration - Drivers - Native - FoxPro

А вообще, я бы рекомендовал отказаться от использования BDE. Компонентов доступа к DBF файлам вагон и огромная тележка впридачу! Например, бесплатный и в исходниках TDBF
Или через ADO (MS Foxpro OLE DB Provider) читайте..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2009, 09:32   #3
solyr
 
Регистрация: 28.11.2009
Сообщений: 6
По умолчанию

Оказалось все проще. Индексы не надо было создавать, не надо было и явно в "BDE Administrator" явно задавать кодовую страницу, поскольку соединение контролируется динамически компонентом TDataBase. Там я указываю какой драйвер использовать и кодовую страницу. Я в ДескТопе в TableLanguage просто явно задал кодовую страницу и все заработало )
solyr вне форума Ответить с цитированием
Старый 28.11.2009, 09:34   #4
solyr
 
Регистрация: 28.11.2009
Сообщений: 6
По умолчанию

Воспользуюсь вашим советом и наверное да откажусь от BDE
solyr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Linux rus + wine MisterKoK Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 3 29.11.2009 19:48
кодировки ROI8-R в MS DOS CP866 и обратно lex1398 Помощь студентам 0 04.10.2009 12:59
Delphi - rus текст Vladimir-belikov Помощь студентам 2 30.05.2009 13:14
Перевод названий функций Rus-Eng??? Montana78 Microsoft Office Excel 2 15.06.2007 10:49