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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2011, 09:32   #1
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 21
По умолчанию Проблемы с кирилицей для доступа к БД под Delphi XE

После перехода на новую версию Delphi (с 7 на XE) возникли проблемы с компонентами для "общения" с БД, например, TDBGrid: кирилические символы из базы данных стали отображаться кракозябами. В то же время, с компонентом TDBmemo проблем нет. Попытка менять свойства TBBGrid.Font.Charset ни к чему ни привела. Как исправить? База данных - на InterBase, строковые поля типа TIBStringField
Prok186 вне форума Ответить с цитированием
Старый 01.07.2011, 07:32   #2
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Ну для начала почитали бы о том что Delphi 7 это ANSI, а XE это юникод. Т.е. все компоненты поддерживают Юникод. 7 не поддерживает юникод. Следовательно при подключении надо указывать кодировку. Как CP1251.
В 7 твой TIBStringField это ansistring с кодировкой cp1251.
В XE твой же TIBStringField это unicodestring.
На компоненте TIBDatabase правой кнопкой и Database Editor.
Там поле Character Set указываешь как WIN1251.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 02.07.2011, 12:36   #3
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 21
По умолчанию

Цитата:
Сообщение от rdama Посмотреть сообщение
Ну для начала почитали бы о том что Delphi 7 это ANSI, а XE это юникод. Т.е. все компоненты поддерживают Юникод. 7 не поддерживает юникод. Следовательно при подключении надо указывать кодировку. Как CP1251.
В 7 твой TIBStringField это ansistring с кодировкой cp1251.
В XE твой же TIBStringField это unicodestring.
На компоненте TIBDatabase правой кнопкой и Database Editor.
Там поле Character Set указываешь как WIN1251.
Про Юникод конечно знаю...но лучше бы его не было. Попробовал TIDataBase изменить кодировку на WIN1251. Стало ещё хуже!! Теперь при попытке писать кирилицей в полях типа TIBStringField получаешь ошибку: "Cannot transliterate character between character sets"
Prok186 вне форума Ответить с цитированием
Старый 04.07.2011, 04:08   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Теперь наверно стоит у DataSet'ов свойство FieldList перезаполнить.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лаги с кирилицей AIR_3 Общие вопросы C/C++ 1 05.05.2011 19:57
Проблемы с Delphi 7 на Windows 7 (delphi не принимает пути с кирилицей) unbanned Общие вопросы Delphi 12 16.04.2011 21:19
Скрипт в PHP для для доступа БД MySQL Loriens PHP 7 10.01.2011 19:08
Почему после компилиции не пишет кирилицей? lionig28 Общие вопросы C/C++ 1 01.02.2008 21:33
Проблемы с пингом под ip KAZzzz Работа с сетью в Delphi 2 19.12.2006 17:01