Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает UPPER() с русскими буквами в IB6 / 10 сообщений из 10, страница 1 из 1
25.11.2002, 11:38
    #32071833
denipod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Не работает функция UPPER() с русскими буквами в IB6
Подскажите, пожалуйста, как решить эту проблему.
...
Рейтинг: 0 / 0
25.11.2002, 12:07
    #32071854
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Обычно достаточно UPPER(<FieldName> COLLATE PXW_CYRL) если win1251 у поля
...
Рейтинг: 0 / 0
25.11.2002, 18:43
    #32072199
denipod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
А если не win1251?
И можно ли сменить charset для таблицы(поля), если можно, то как
...
Рейтинг: 0 / 0
25.11.2002, 20:38
    #32072234
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Можно создать новое поле, скопировать данные из старого в новое, старое удалить, новое переименовать :-).
...
Рейтинг: 0 / 0
26.11.2002, 11:12
    #32072413
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Ты уверен, что там чарсет не win1251?
в IB6 есть ALTER COLUMN вроде, им и воспользуйся, либо можно в системных таблицах поправить
...
Рейтинг: 0 / 0
26.11.2002, 12:29
    #32072458
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Вобще-то разные в разных кодировках на символ разное кол-во байт выделяется. Так что, теоретически, могут быть проблемы со сменой кодировок.
...
Рейтинг: 0 / 0
26.11.2002, 12:36
    #32072464
denipod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
RE: ALL
Всем большое спасибо за помощь!
Я решил эту проблему следующим образом:
Создал аналогичную БД c default charset win1251
символьным полям задал COLLATE PXW_CYRL (может и не надо было)
запрос типа:
SELECT * FROM <table> WHERE UPPER(<field>) like '<value>'
(ежели <value> состоим из русских букв, то выдается ошибка:
Arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets)
надо делать так:
SELECT * FROM <table>
WHERE UPPER(<field>) like _win1251 '<value>'
...
Рейтинг: 0 / 0
26.11.2002, 18:06
    #32072676
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Ну насчет того, что ты сразу задал COLLATE - это зря, в PXW_CYRL берется 3 байта на символ, а применение практически только UPPER, в котором collation order можно задать в любой момент (как написано)
НАсчет же того, что не может конвертировать между чарсетами - так просто при коннекте надо было указать charset как win1251
...
Рейтинг: 0 / 0
26.11.2002, 23:22
    #32072758
boss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
Была та же проблема.
Класс!
Поставил - UPPER(<FieldName> COLLATE PXW_CYRL) и все заработало!
...
Рейтинг: 0 / 0
28.11.2002, 10:07
    #32073245
FAGIM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPPER() с русскими буквами в IB6
А у меня все время даже при этих способах выдает приведенную ошибку и теперь у меня всюду чарсет NONE,
а UPPER заменил на WINAPI - шную CharUpper, работет кстати нисколько не медленне.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает UPPER() с русскими буквами в IB6 / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]