21 октября, воскресенье 09:28
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Pervasive и кодировка

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Pervasive и кодировка

    Не работает UPPER в SELECTе Pervasivа при выборке записей из RS-совской таблицы.
    Сама команда следующая:
    SELECT szshortname FROM "client_dbt" where UPPER(szshortname) like '%ПЕТРОВ%'
    Проблема явно с кодировкой. Можно для проверки написать и так:
    SELECT UPPER(szshortname),szshortname FROM "client_dbt" where szshortname like '%Петров%'
    Может быть кто нибудь сталкивался с такой проблемой?

  • #2
    Обсуждалось:
    http://forum.bankir.ru/showthread.php?t=65051
    функция
    function ConvertStrToRS (str:string):string;
    var i,n:byte;
    begin
    result:='';
    for i:= 1 to length(str) do
    begin
    n:=ord(str[i]);
    if n>239 then n:=n-16 else if n>191 then n:=n-64;
    result:=result+chr(n);
    end;

    используйте её для конвертации ПЕТРОВ'а
    Skit

    Комментарий


    • #3
      Спасибо, но это не совсем то. Это перекодировка переводит строчные в строчные, прописные в прописные. А мне нужно прописные в строчные.

      Комментарий


      • #4
        Возможно Вы правы. Попробую.

        Комментарий


        • #5
          Нет это не то.
          SELECT upper(szshortname),szshortname FROM "client_dbt" where szshortname like '%Ященко%'
          Этот SELECT возвращает
          Пгенко Ященко
          И перекодируется в нечто похожее на это …’Ž‚

          Комментарий


          • #6
            А вот это я победил в настройке клиента, когда подключил удаленный сервер и поставил галочку Use OEM/ANSI conv:

            Я думаю это можно проделать и на сервере, но на рабочем сервере RS а у меня не поднялась рука копаться...

            Комментарий


            • #7
              Это мы уже проходили. Не помогает.

              Комментарий


              • #8
                На всякий случай прокоментирую. На клиентской машине, настроен алиас ODBC (Use OEM/ANSI conversion - снята!!!) перед записью в базу прогоняю string'овые переменные через ConvertStrToRS. В итоге, сохраняется нормально (например, сегодня выгрузил в назначении платежа одного из документов "Списание денежных средств..." - имеем и нижний и верхний регистр символов).
                Теперь вторая часть известного балета. Что-бы при снятом крыже Use OEM/ANSI conversion в Grid'е текст был читаем - используем в Grid'e шрифт Terminal.
                Skit

                Комментарий


                • #9
                  Не совсем ясно
                  Вроде бы с сохранением в/из Pervasive проблем не было.
                  Но попробуйте, к примеру, выполнить такой вот запрос:
                  select upper(szShortName) from client_dbt

                  Он выдает !разный! результат для строки "Иванов" и строки "ИВАНОВ".
                  В конкретном случае "Ибаноб" и "ИВАНОВ" соответственно.

                  А проблем с отображением в разных кодировок не было (были проблемы с поиском в разных кодировках =) ).

                  Комментарий

                  Пользователи, просматривающие эту тему

                  Свернуть

                  Присутствует 1. Участников: 0, гостей: 1.

                  Обработка...
                  X