Форум: "Базы";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
ВнизПочему не срабатывает UPPER? Найти похожие ветки
← →
off (2003-05-08 08:27) [0]Мастера поскажите в чем проблема. Пишу
IBQuery1.SQL.Text:="Select * from LICALL "+"where FIO LIKE UPPER("+""""+"%"+edit1.Text+"%"+""""+")";
По идее должно приводится к верхнему регистру, но не выходит.
← →
Zacho (2003-05-08 08:38) [1]
> off © (08.05.03 08:27)
О, снова этот вопрос ! Как минимум раз в неделю повторяется.
Главный совет: внимательно читать http://www.ibase.ru/devinfo/ibrusfaq.htm
Теперь коротко: если у поля установлен character set win1251 и не установлен collate pxw_cyrl то делать надо так:
SQL.Text:="SELECT * FROM LICALL WHERE UPPER(FIO COLLATE PXW_CYRL) LIKE "+AnsiQuotedStr("%"+AnsiUpperCase(Edit1.Text)+"%")
← →
Danilka (2003-05-08 08:39) [2]может это тебе поможет:
http://www.ibase.ru/devinfo/ibrusfaq.htm
в середине пункт: "Uppercase русских букв"
← →
Danilka (2003-05-08 09:36) [3]а вообще, думаю в данном случае дешевле будет делать так:
IBQuery1.SQL.Text:="Select * from LICALL "+"where FIO LIKE ("+""""+"%"+AnsiUpperCase(edit1.Text)+"%"+""""+")";
← →
Danilka (2003-05-08 09:37) [4]блин, не дочитал:
Zacho © (08.05.03 08:38)
сорри
:))
← →
off (2003-05-08 09:52) [5]Спасибо, в следующий раз буду внимательнее :-)
← →
off (2003-05-12 11:47) [6]Так тут опять же такая проблема. Только ставлю чарсет в вин1251 так все работать престает. Выдает какое-то сообщение щас и не вспомню как звучит.
← →
Zacho (2003-05-12 11:53) [7]
> off © (12.05.03 11:47)
Телепатов нет :-)
Если хочешь получить ответ - пиши вопрос более подробно. Где ставишь ? Каким инструментом (компонентами и т.п.) пользуешься ? Как именно работать перестает ? И что именно (твоя программа, какой-либо инструмент типа IBConsole или IBExpert) ? Текст сообщения об ошибке ?
А вообще-то в http://www.ibase.ru/devinfo/ibrusfaq.htm все довольно подробно описано.
← →
Соловьев (2003-05-12 12:00) [8]пользуюсь такой вот конструкцией и проблем не было...
...
where UPPER(Field1 collate PXW_CYRL) like UPPER(:Param1 collate PXW_CYRL)||"%"
← →
off (2003-05-12 12:04) [9]Да факу я читал, правда ответа не нашел.
Чарсет ставлю, к примеру, при создании базы.
А сообщение следующее : "arithmetic exception, numeric overflow, or string truncation Cannot transliterate character between character sets"
← →
off (2003-05-12 12:08) [10]
> Соловьев © (12.05.03 12:00)
> пользуюсь такой вот конструкцией и проблем не было...
> ...
> where UPPER(Field1 collate PXW_CYRL) like UPPER(:Param1
> collate PXW_CYRL)||"%"
А чарсет какой? У меня стоит none.
← →
Zacho (2003-05-12 12:10) [11]
> off © (12.05.03 12:04)
Используешь IB Console ? Тогда это баг консоли. Попробуй сделать Unregister Database / Register Database. Или пользуйся чем-нибудь более другим, чем IB Console.
P.S. И все-таки учись задавать вопросы. Без информации, которую я у тебя спрашивал в Zacho © (12.05.03 11:53) - все попытки ответить - гадание на кофейной гуще.
← →
off (2003-05-12 12:38) [12]А когда делаю UPPER(FIO COLLATE PXW_CYRL). Выдает сообщение
"Dinamic SQL Error
.................
Data type unknown
COLLATION PXW_CYRL is not valid for specified CHARACTER SET."
Charset - none (иначе выдает собщение см. > off © (12.05.03 12:04)).
← →
Zacho (2003-05-12 12:45) [13]
> off © (12.05.03 12:38)
А еще пишешь, что FAQ читал. Там же ясно написано - при character set none вместо UPPER нужно использовать UDF !
Если хочешь без UDF - ставь character set win1251.
> (иначе выдает собщение см. > off © (12.05.03 12:04)).
Ну я же просил уже - приведи более подробную информацию. Телепатов здесь нет. Единственное, что могу предположить - ты пользуешься IB Console. В ней есть баг. Попробуй другой инструмент.
← →
off (2003-05-12 13:18) [14]А в принципе, как правильнее: ставить чарсет "none" или "win1251"?
← →
Zacho (2003-05-12 13:28) [15]
> off © (12.05.03 13:18)
Зависит от задачи и личных предпочтений :) Если собираешься хранить строковые данные в разных кодировках (и/или на разных языках) - правильнее none. Если в одной - есть плюсы и минусы и для при указании чарсета и при none. При явно определенном character set (и еще collate) для полей - работать проще.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c