ODAC и кириллица

Модератор: Модераторы

ODAC и кириллица

Сообщение gelios » 23.06.2009 19:08:57

Имеется lazarus 0.9.26.2 beta, fpc 2.2.2, odac 4.70.
вместо кириллицы - пробелы. если вставлять кириллицу из fpc, то потом запись отображается корректно, но в базу пишется как понял в кодировке utf8. Кодировка базы - CL8MSWIN1251.
где и что нужно подточить напильником?
gelios
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.06.2009 13:19:55

Re: ODAC и кириллица

Сообщение Mr.Smart » 24.06.2009 08:24:36

При записи/чтении сам меняй кодировку UTF8ToAnsi/AnsiToUTF8.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: ODAC и кириллица

Сообщение gelios » 24.06.2009 08:37:56

это первое, что я попробовал - не помогает.
gelios
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.06.2009 13:19:55

Re: ODAC и кириллица

Сообщение Mr.Smart » 24.06.2009 08:52:56

Приведите код чтения/записи.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: ODAC и кириллица

Сообщение gelios » 24.06.2009 12:14:20

Код: Выделить всё
procedure TForm1.OraQuery1AfterScroll(DataSet: TDataSet);
begin
  Label1.Caption:= Utf8ToAnsi(dataset.Fields[1].AsString);
end; 
gelios
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.06.2009 13:19:55

Re: ODAC и кириллица

Сообщение voltron » 24.06.2009 14:40:20

Так вам вроде бы наоборот надо. Из базы вы получаете Win1251, а LCL работает с UTF8. Т.е. в данном примере нужно использовать AnsiToUtf8
voltron
новенький
 
Сообщения: 64
Зарегистрирован: 06.07.2007 13:27:46
Откуда: Украина

Re: ODAC и кириллица

Сообщение gelios » 24.06.2009 14:59:56

Cемён-Семёныч :) заработало :P
я правильно понимаю, что всю обработку строк уже нужно делать ручками (в частности конвертацию)?

Добавлено спустя 1 час 7 секунд:
чувствую, что нужно у класса TStringFiled малость подправить методы SetAsString/GetAsString.
Достаточно ли после внесения изменения в IDE выбрать пункт "Сервис"|"Собрать Lazarus"?
gelios
незнакомец
 
Сообщения: 4
Зарегистрирован: 23.06.2009 13:19:55

Re: ODAC и кириллица

Сообщение voltron » 24.06.2009 18:48:05

gelios писал(а):я правильно понимаю, что всю обработку строк уже нужно делать ручками (в частности конвертацию)?

Да, если строки у вас в кодировке отличной от UTF8, то конвертировать нужно ручками. Не знаю, умеет ли оракл, как Firebird, автоматически перекодировать данные при указании кодировки соединения...
gelios писал(а):Достаточно ли после внесения изменения в IDE выбрать пункт "Сервис"|"Собрать Lazarus"?

Думаю, достаточно. Пусть более опытные поправят, если ошибаюсь.
voltron
новенький
 
Сообщения: 64
Зарегистрирован: 06.07.2007 13:27:46
Откуда: Украина


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

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

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

Рейтинг@Mail.ru