Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.014 c
1-1471
DVP1
2003-08-18 14:41
2003.09.01
Как удалить из текстового файла строку?


4-1723
sca
2003-06-30 11:50
2003.09.01
perform, sendmessage, postmessage


1-1464
Александр из Минска
2003-08-18 11:46
2003.09.01
TChartFX


6-1526
MSasha
2003-06-23 11:08
2003.09.01
Как написать FTP server используя Indy? Пример pls.


14-1630
Е-Моё имя
2003-08-13 09:52
2003.09.01
маразм крепчал




   Наверх