![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
UPPER не работает с русскими буквами [D7, XP]
abhtr © (2008-12-09 16:51:00)В запросе использую UPPER:
select *
from Prdca
where UPPER(Prdca_index) = UPPER('проба')
но она с английскими буквами работает, а с русскими - нет.
Работаю с FireBird 1.5.
Как можно сделать преобразование в верхний регистр?
Правильный$Вася (2008-12-26 14:01:00) [1]
> _guest_ (26.12.08 13:18) [16]
читать надо сначала
[1]
и выводы делать
> Очевидно таков FB.
кто хочет, ищет способы, кто не хочет - причины
Johnmen (2008-12-26 13:35:00) [2]
> Очевидно таков FB.
Очевидно, надо-таки читать документацию...
_guest_ (2008-12-26 13:18:00) [3]Понимаю, что поезд ушел, но сам сталкнулся с такой же проблемой: Upper не работает с русскими буквами. FB у меня 2.1, других серверов нет, но добиться чтбы Upper заработал так и не удалось. Очевидно таков FB.
abhtr (2008-12-10 12:17:00) [4]
> Но разобраться с upper и с зоопарком серверов все-таки желательно
Согласен. Конечно, я и базу решил разрабатывать под FireBird с учетом перехода на FireBird, только все откладывал на потом.
Так что будем решать...
Еще раз спасибо за советы.
Правильный$Вася (2008-12-10 11:45:00) [5]
> разобраться с upper и с зоопарком серверов все-таки желательно
хотя бы потому, что и сортировки тоже используют признаки [1]
Sergey13 (2008-12-10 11:35:00) [6]> [12] abhtr (10.12.08 11:28)
> Останавливаюсь на этом варианте.
Но разобраться с upper и с зоопарком серверов все-таки желательно, ИМХО. Иначе придется, возможно, еще не раз обходить (а не решать) проблемы. Самое обидное, что выявляться они могут как угодно поздно.
abhtr (2008-12-10 11:28:00) [7]
> Для полей типа твоего Prdca_index вполне ИМХО нормальное
> решение
Согласен.
Останавливаюсь на этом варианте.
Всем upper('спасибо') :о)
Sergey13 (2008-12-10 11:20:00) [8]> [9] abhtr (10.12.08 11:12)
> Насколько FireBird 1.5 требует больше ресурсов чем InterBase 6.5?
На 2.
> [10] abhtr (10.12.08 11:14)
> Я тоже об этом думаю
Для полей типа твоего Prdca_ indexвполне ИМХО нормальное решение. Для полей типа ФИО мне кажется это лишним.
abhtr (2008-12-10 11:14:00) [9]
> я чтобы не мучаться с такими проблеммами всегда записи заполняю
> заглавными буквами
Я тоже об этом думаю, но как-то вроде не очень красиво само решение :о)
Что-то есть в этом решении пере... пере...
abhtr (2008-12-10 11:12:00) [10]Компьютер у заказчика слабоват.
Насколько FireBird 1.5 требует больше ресурсов чем InterBase 6.5?
9899100 (2008-12-10 11:03:00) [11]я чтобы не мучаться с такими проблеммами всегда записи заполняю заглавными буквами
а в программе немного изменяю при выводе
например поле ФИО в базе ИВАНОВ ИВАН ИВАНОВИЧ
а пользователю выдаю Иванов Иван Иванович
получается конечно немного медленнее при отображении
но ведь пользователю реально не надо сразу перед собой видеть все записи базы
ему достаточно сделать выборку
Правильный$Вася (2008-12-10 10:54:00) [12]
> базу я создаю как FireBird 1.5, но на компьютере, где все
> это работает стоит InterBase 6.5
не удивительно, резьба у шурупов и болтов разная
abhtr (2008-12-10 10:30:00) [13]Попробовал создать новую базу, в которой сразу указал кодировку win1251.
И все равно :о(((
Простой запрос
select upper('фыппав')
from Prdca
выдает теже буквы в нижнем регистре.
Т.е. не работает upper.
Может это потому, что базу я создаю как FireBird 1.5, но на компьютере, где все это работает стоит InterBase 6.5 ?
abhtr (2008-12-10 09:48:00) [14]Вариант
UPPER(cast Prdca_index as varchar collate WIN1251)
дает ошибку останавливая курсор на cast, а пишет Prdca_index
Вариант, который взят из статьи
where upper(Prdca_index COLLATE WIN1251) = 'Л3134'
пишет сообщение об ошибке:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.
Johnmen (2008-12-09 18:56:00) [15]http://www.ibase.ru/devinfo/ibrusfaq.htm
clickmaker (2008-12-09 18:09:00) [16]а там не работает что-то типа
UPPER(cast Prdca_index as varchar collate cyrillic_или_как_оно_там_в_FB)?
abhtr (2008-12-09 17:52:00) [17]
> Правильный$Вася
Да, все правильно.
Для всей базы стоит NONE, и для таблицы для полей VarChar стоит NONE.
Попробовал поменять. Вроде бы - поменялось.
Но запрос все равно не работает.
Может надо теперь и все данные "переконвертировать"?
Правильный$Вася (2008-12-09 17:18:00) [18]COLLATE
CHARACTER SET
F1