Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Upper в Interbase [D7, IB6.x]


Seven ©   (2003-05-05 06:54:00) 

Этот вопрос уже задавался,
но ни один из ответов не принес желаемого результата.
А проблема такая: upper в запросах IB не работает с русскими буквами. На сайте ibase.ru то же был, но красивого решения не
нашел. Может у кого то есть действительный опыт борьбы с upper.
Какую кодировку нужно устанавливать для поля таблицы, к которому применяется Upper.
Спасибо за внимание


Desdechado   (2003-05-05 16:48:00) [1]

IBConsole тоже с кодировками глючит
возьми, например, IBExpert


Zacho   (2003-05-05 16:47:00) [2]


> Seven (05.05.03 15:34)

То, что "мой IB6.0 не дает вставить в поле ни одного русского
символа" - это баг именно консоли, а не IB. А вообще, IB 6.0 - глюкотень еще та. Настоятельно рекомендую перейти на FB или Yaffil.


Seven   (2003-05-05 15:34:00) [3]

Всем спасибо,
думаю, что теперь проблему решу, так как вариантов
исследования больше чем достаточно

PS: работаю через IBX,
а все запросы тестировал в IB_Console,
наверно стоит действительно
попробывать поставить другу версию IB


Avreliy   (2003-05-05 15:30:00) [4]

Я использую FireBird 1.0.2. Кодировку указывал толькопри создании БАЗЫ. В IB Eхpert"е пробывал испльзовать UPPER с COLLATE PXW_CYRL - всё работает. Если запрос создаётся посредством использования BDE - попробуй в свойствах псевдонима БД присвоить параметру LANGDRIVER значение Pdox ANSI Cyrillic.


Карелин Артем   (2003-05-05 15:17:00) [5]

Короче на всех этапах работыуказывай русскую кодировку. При создании базы, при добавлении полей, при настройке соединения с базой в дельфине....


Seven   (2003-05-05 15:10:00) [6]

Наталия:

Может быть у меня ручки кривоваты,
но такой простой запрос:

Select
upper(name COLLATE PXW_CYRL)
from
company

или такой

Select
upper("я" COLLATE PXW_CYRL)
from
company

Вызывает след. ошибку

Cannot transliterate character between character sets
Statement: Select
upper(name COLLATE PXW_CYRL)
from
company

Таблица company содержит русские названия компаний


Карелин Артем   (2003-05-05 15:07:00) [7]

Seven (05.05.03 15:01)
Значит IB у тебя глючный. На 4.2, 6.1, FireBird, Yaffil нормально работает CHARACTER SET WIN1251
COLLATE WIN1251


Alexandr   (2003-05-05 15:04:00) [8]

читать
http://www.ibase.ru/devinfo/ibrusfaq.htm
до полного прояснения.
(в том числе про параметры подключения)


Соловьев   (2003-05-05 15:04:00) [9]


> то мой IB6.0 не дает вставить в поле ни одного русского
>
> символа

а как ты подключаешся?
в параметрах TDatabase есть lc_ctype=WIN1251?


Seven   (2003-05-05 15:01:00) [10]

Zacho: Если задавать для полей charset win1251,
то мой IB6.0 не дает вставить в поле ни одного русского
символа


Zacho   (2003-05-05 12:08:00) [11]

А какой результат желаемый ?
Все просто - или задаешь для полей charset win1251 и в запросах используешь COLLATE PXW_CYRL или charset none и UPPER из UDF.
В чем, собственно, проблема ?


Desdechado   (2003-05-05 10:49:00) [12]

в UDF тяжеловато встроить все кодировки, поддерживающие кириллицу. Но если в БД используется только одна, то все просто.


Rad   (2003-05-05 07:15:00) [13]

Ну как это не нашел красивого решения?
На том же IBase ( http://www.ibase.ru/devinfo/ibrusfaq.htm) есть про применение кодировок более чем подробно.
А я вот лично использую UDF RFunc ( http://www.ibase.ru/d_udf.htm) - и тоже без всяких проблем (в том числе, с кодировками полей, базы т.д.)


Наталия   (2003-05-05 07:10:00) [14]

...upper("Cевен" COLLATE PXW_CYRL)=...


Наверх

Титульная страница Поиск, карта сайта Написать письмо