Кодировка и дата Lazarus + FIBL + FireBird (Linux)

Вопросы программирования и использования среды Lazarus.

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

Ответить
corpse
новенький
Сообщения: 15
Зарегистрирован: 17.11.2006 17:52:05

Кодировка и дата Lazarus + FIBL + FireBird (Linux)

Сообщение corpse »

Доброго времени суток. У меня появились вопросы по корректному отображению информации в гриде.
Есть следующее:
FireBird 1.5.1.4481-0.i686
Alt Linux Master 2.4
Lazarus 0.9.20 beta
fpc&fpr-src 2.0.4-0
И FIBL последней версии. Базу создавал под WIN, то есть, ставил DEFAULT CHARACTERSET WIN1251. Есть ли возможность сделать так, чтобы при коннекте к базе под линуксом тем же лазарусом, занесенные в неё данные перекодировались на лету в KOI8-R или проще сделать отдельную базу с KOI8-R? То есть, можно ли с одной базой работать и из-под Win и из-под Linux?

Второй вопрос: когда подключаюсь к базе isql, то всё замечательно, когда подключаюсь средствами Lazarus (FIBL, Interbase), то все даты в гриде отображаются как 00.00.00. Как под линуксом, так и под виндой.

Помогите, пожалуйста, подскажите, что делать?
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Сообщение tria »

Есть смысл запускать свою прогу в локали 1251, и тогда не нужны никакие перекодировки.
А если и заниматься перекодировкой, то уж лучше в utf8.

По датам.
А не в гриде что показывает?
corpse
новенький
Сообщения: 15
Зарегистрирован: 17.11.2006 17:52:05

Сообщение corpse »

tria писал(а):Есть смысл запускать свою прогу в локали 1251, и тогда не нужны никакие перекодировки.
Хорошо. Тогда вопрос - а как это сделать??? Как запусать отдельное приложение в локали 1251, когда вся операционка живёт под koi8-r?

tria писал(а):А если и заниматься перекодировкой, то уж лучше в utf8.
Лучше-оно конечно, лучше, только там судя по форумам ещё больше проблем и трудностей... Если, конечно, дадите линк на толковый мануал...

tria писал(а):По датам.
А не в гриде что показывает?
В isql даты отображает нормально. Например, '01.02.99'.
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Сообщение tria »

Запуск Лазаря (а потом и проги) надо делать скриптом:
LC_ALL=ru_RU.cp1251
LANG=ru_RU.cp1251
lazarus

Если нет локали 1251 надо ее создать коммандой:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
Аватара пользователя
Сергей Смирнов
энтузиаст
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва
Контактная информация:

Сообщение Сергей Смирнов »

corpse писал(а):Второй вопрос: когда подключаюсь к базе isql, то всё замечательно, когда подключаюсь средствами Lazarus (FIBL, Interbase), то все даты в гриде отображаются как 00.00.00. Как под линуксом, так и под виндой.

Помогите, пожалуйста, подскажите, что делать?
Это связано с периодическим пересмотром внутреннего представления (в FCL) соответствующих типов данных (ftDateTime и т.п.). Пока это дело не устаканится, ковыряться неохота.
corpse
новенький
Сообщения: 15
Зарегистрирован: 17.11.2006 17:52:05

Сообщение corpse »

tria писал(а):Запуск Лазаря (а потом и проги) надо делать скриптом:
LC_ALL=ru_RU.cp1251
LANG=ru_RU.cp1251
lazarus

Если нет локали 1251 надо ее создать коммандой:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251


Большое спасибо! То, что надо!
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

мне кажется не правильно вы делаете.
там при подключении одним из параметров идет кодировка которая должнпа использоваться. надо туда копать
corpse
новенький
Сообщения: 15
Зарегистрирован: 17.11.2006 17:52:05

Сообщение corpse »

Копал, не особо помогло. А таким образом у меня получается и исходник уже в 1251, значит, я могу его собрать и под Win и под Lin без проблем. Мне просто больше нравится этот вариант. :)
BigSerpent
незнакомец
Сообщения: 7
Зарегистрирован: 11.12.2006 17:06:37
Откуда: Minsk

Сообщение BigSerpent »

Ответить