Interbase проблем

3 отговора 176 прегледа
#1

Interbase проблем

Здравейте,

Имам следният проблем с Interbase
налага ми се да използвам функцията Upper() но се оказа че тя не работи за
записи с кирилица.Не съм оказал default charset на базата данни.
Какъв default charset трябва да сложа за да ползвам кирилица, да работи Upper() и как да insert-вам записи съдържащи кирилица защото пробвах с WIN1251, но неможах да въведа запис съдържащ кирилица.

Предварително благодаря

Отговор
в отговор на chiko #2

Re: Interbase проблем

Проблема е задклавиатурен
Накратко:
1. При създаване на базата задаваш DEFAULT CHARACTER SET WIN1251
1а. При създаване на полето задаваш CHARACTER SET WIN1251, ако дефолта е друг.
2. При създаване на полето задаваш COLLATE PXW_CYRL
2а. При селекта задаваш COLLATE PXW_CYRL, ако не е даден при полето
3. При конекта задаваш lc_ctype=WIN1251
4. Наличие на правилната GDSINTL.DLL (под Unix - gdsintl.so)

За повече подробности О работе с русскими буквами в InterBase/Firebird

Отговор
в отговор на NDeu #3

Re: Interbase проблем

> 2. При създаване на полето задаваш COLLATE PXW_CYRL

Това може да се пропусне ако направиш -
(нямам IB тук - горе долу това) преди таблиците:

update rdb$charater_sets set default_cahracterset = 'PXW_CYRL' Where name = 'WIN1251'

Отговор
в отговор на Bojo #4

Re: Interbase проблем

Смесваш понятията CHARACTER SET и COLLATE.

Отговор