Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: CL | DM;

Вниз

Interbase и русские символы (работа UPPER)   Найти похожие ветки 

 
filya   (2003-08-06 18:29) [0]

Сервер firebird 1.0.3.972
делаю таблицу
CREATE TABLE KLIENT (
ID INTEGER NOT NULL,
NAME_KLIENT ( 250) Сервер firebird 1.0.3.972
делаю таблицу
CREATE TABLE KLIENT (
ID INTEGER NOT NULL,
NAME_KLIENT CHAR(250) CHARACTER SET WIN1251 NOT NULL);
добавляю строку с русскими символами, на запрос
select UPPER(name_klient) from KLIENT
выдает строку как она и забита в нижнем регистре, если кто знает как с этим справится подскажите пожалуйста.
здесь на форуме я нашел подобный вопрос, там советовали установить сервер в директорию 8:3 все так и сделал. еще указать правильный langdriver, но я незнаю что это и как его указать!
Заранее огромное спасибо!


 
HSolo ©   (2003-08-06 18:31) [1]

http://www.ibase.ru/devinfo/ibrusfaq.htm


 
kaif ©   (2003-08-06 23:08) [2]

Для upper-а collation order еще нужен, а не только character set.


 
Desdechado ©   (2003-08-07 11:26) [3]

или использовать только большие буквы при записи
или доп поле с большими
или UDF Для этой цели


 
filya   (2003-08-07 12:49) [4]

используя collation все работает с IBExpert, записи добавляются и аппер хорошо работает при использовании
select UPPER(name_klient COLLATE PXW_CYRL) from KLIENT
но вот проблема возникла с делфи, когда я не указывал при создании таблицы character set win1251, то из делфи записи добавлялись нормально, а теперь хрен, пишет что
cannot transliterate character between character sets
но это в том случае если я вношу данные с русскими символами, что теперь делать даже незнаю.


 
filya   (2003-08-07 12:52) [5]

я так понимаю что при соединении с сервером нужно указывать с какой кодировкой работать, но где это в делфи указать нужно, я что то ненашел?


 
Zacho ©   (2003-08-07 12:57) [6]


> filya (07.08.03 12:52)

Какие компоненты доступа ? Если BDE, то LANGDRICER=PdoxANSICyrillic в алиасе или LANGDRICER=ancyr в TDatabase, если IBX - то lc_ctype=win1251 в TIBDatabase.Params
А вообще, тебе уже дали ссылку на статью, в которой все подробно описано - http://www.ibase.ru/devinfo/ibrusfaq.htm , неужели трудно внимательно ее прочитать ?


 
HSolo ©   (2003-08-07 12:58) [7]

Да, верно. В параметрах коннекта укажите

lc_ctype=WIN1251

Где именно указывать - зависит от компонент доступа. В FIBPlus это TpFIBDatabase.DBParams, в IBX - TIBDatabase.Params


 
filya   (2003-08-07 13:12) [8]

я пробовал указывать в параметрах TIBDatabase.Params lc_ctype=WIN1251
, но тогда уже при запросе селект выдает ошибку
cannot transliterate character between character sets


 
Zacho ©   (2003-08-07 13:19) [9]


> filya (07.08.03 13:12)

Какой character set у поля ? Если none, то так и должно быть. Прочитай наконец статью !


 
filya   (2003-08-07 13:23) [10]

да я ее прочитал от корки до корки.
смотри запрос при создании таблицы
CREATE TABLE KLIENT (
ID INTEGER NOT NULL,
NAME_KLIENT ( 500) да я ее прочитал от корки до корки.
смотри запрос при создании таблицы
CREATE TABLE KLIENT (
ID INTEGER NOT NULL,
NAME_KLIENT VARCHAR(500) CHARACTER SET WIN1251 );
я ее еще в IBExpert поправлял указывал collate PXW_CYRL


 
Zacho ©   (2003-08-07 13:46) [11]


> filya (07.08.03 13:23)

Ну, тогда не должно такого быть. Проверь еще раз, точно ли у поля NAME_KLIENT charset win1251. Попытайся переподключиться к БД. Кстати, если для поля указан collate, то в запросе collate можно не писать.


 
filya   (2003-08-07 15:01) [12]

все заработало, я заново создал базу данных и все таблицы, и тогда все заработало.
Огромное спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.07 c
11-1359
CooL
2002-12-23 16:04
2003.09.01
Thread, ну не пойму я!


14-1653
Скорбящий
2003-08-13 20:05
2003.09.01
сабж


1-1454
Still_Swamp
2003-08-19 17:14
2003.09.01
Прочитать в TMemoryStream


3-1328
Lt
2003-08-07 15:44
2003.09.01
Рисование на индикаторе TDBGridEh


14-1629
Tornado
2003-08-13 08:26
2003.09.01
форум умер