Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c