![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Interbase и русские символы (работа UPPER)
filya © (2003-08-06 18:29:00)Сервер 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, но я незнаю что это и как его указать!
Заранее огромное спасибо!
filya (2003-08-07 15:01:00) [1]
все заработало, я заново создал базу данных и все таблицы, и тогда все заработало.
Огромное спасибо!
Zacho (2003-08-07 13:46:00) [2]
> filya (07.08.03 13:23)
Ну, тогда не должно такого быть. Проверь еще раз, точно ли у поля NAME_KLIENT charset win1251. Попытайся переподключиться к БД. Кстати, если для поля указан collate, то в запросе collate можно не писать.
filya (2003-08-07 13:23:00) [3]да я ее прочитал от корки до корки.
смотри запрос при создании таблицы
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:19:00) [4]
> filya (07.08.03 13:12)
Какой character set у поля ? Если none, то так и должно быть. Прочитай наконец статью !
filya (2003-08-07 13:12:00) [5]
я пробовал указывать в параметрах TIBDatabase.Params lc_ctype=WIN1251
, но тогда уже при запросе селект выдает ошибку
cannot transliterate character between character sets
HSolo (2003-08-07 12:58:00) [6]
Да, верно. В параметрах коннекта укажите
lc_ctype=WIN1251
Где именно указывать - зависит от компонент доступа. В FIBPlus это TpFIBDatabase.DBParams, в IBX - TIBDatabase.Params
Zacho (2003-08-07 12:57:00) [7]
> 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, неужели трудно внимательно ее прочитать ?
filya (2003-08-07 12:52:00) [8]
я так понимаю что при соединении с сервером нужно указывать с какой кодировкой работать, но где это в делфи указать нужно, я что то ненашел?
filya (2003-08-07 12:49:00) [9]
используя collation все работает с IBExpert, записи добавляются и аппер хорошо работает при использовании
select UPPER(name_klient COLLATE PXW_CYRL) from KLIENT
но вот проблема возникла с делфи, когда я не указывал при создании таблицы character set win1251, то из делфи записи добавлялись нормально, а теперь хрен, пишет что
cannot transliterate character between character sets
но это в том случае если я вношу данные с русскими символами, что теперь делать даже незнаю.
Desdechado (2003-08-07 11:26:00) [10]
или использовать только большие буквы при записи
или доп поле с большими
или UDF Для этой цели
kaif (2003-08-06 23:08:00) [11]
Для upper-а collation order еще нужен, а не только character set.
HSolo (2003-08-06 18:31:00) [12]
http://www.ibase.ru/devinfo/ibrusfaq.htm