Russian version
English version
ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ
 
Программное обеспечение
 
Для зарегистрированных пользователей
 
РАССЫЛКИ НОВОСТЕЙ
IT-Новости
Новости компаний
Российские технологии
Новости ВПК
Нанотехнологии
 
Поиск по статьям
 
RSS-лента
Подписаться
Средства разработки

Работа с русскими кодовыми страницами

Не все сервера баз данных обеспечивают правильную работу с русскими буквами. В большинстве случаев проблема сводится к довольно незначительным, но досадным ошибкам:

  1. Не работают функции Upper и Lower.
  2. Символы сортируются в порядке текущей кодовой страницы (WIN1251), т.е. «ЁёАБВ...Яабв...я»

Решить первую проблему очень легко, если сервер поддерживает функцию TRANSLATE. Например, для PostgreSQL (имеется ввиду стандартная сборка из комплекта cygwin, в то время как правильно собранный сервер и сам нормально работает с русскими кодировками) это будет выглядеть примерно так:

CREATE FUNCTION "w_upper"("varchar") 
RETURNS "varchar" AS '
SELECT TRANSLATE($1, ''abcdefghijklmnopqrstuvwxyzёабвгдежзийклмнопрстуфхцчшщъыьэюя'',
 ''ABCDEFGHIJKLMNOPQRSTUVWXYZЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'')
' LANGUAGE 'sql';

CREATE FUNCTION "w_lower"("varchar") RETURNS "varchar" AS ' SELECT TRANSLATE($1, ''ABCDEFGHIJKLMNOPQRSTUVWXYZЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'', ''abcdefghijklmnopqrstuvwxyzёабвгдежзийклмнопрстуфхцчшщъыьэюя'') ' LANGUAGE 'sql';

Вторую задачу можно решить как минимум двумя способами, суть которых заключается в том, чтобы не дать Access'у перестроить запрос к серверу и таким способом заставить его включить свой собственный механизм сортировки.

  1. Необходимо создать запрос к серверу, который возвращал бы нужные записи. Далее, на основе этого запроса создать обычный запрос, в котором указать требуемый порядок сортировки. Разумеется, такой запрос будет необновляемым.
  2. Создать обычный запрос на основе присоединенной таблицы сервера, в котором задать сортировку по выражению, например «ORDER BY "" & MyTable.MyField». Такой запрос будет обновляемым, если тому не препятствуют обычные ограничения.


  Рекомендовать страницу   Обсудить материал Написать редактору  
  Распечатать страницу
 
  Дата публикации: 24.05.2006  

ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ

Дизайн и поддержка: Silicon Taiga   Обратиться по техническим вопросам  
Rambler's Top100 Rambler's Top100