ZeosDbo+PostgreSQL проблема сортировки кириллицы в TZQuery

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

ZeosDbo+PostgreSQL проблема сортировки кириллицы в TZQuery

Сообщение heks » 28.07.2014 16:59:26

ZeosDbo 7.0.3-stable (7.2.0-alfa) PostgreSQL 9.1.9. Lazarus 1.0.8, (1.2.4.) win xp,7,8

Значения в исходной таблице: А,Б,В,Г,Д
Источник грида -
Код: Выделить всё
select field_name from tbl
сортировка
Код: Выделить всё
with TZQuery(RxDBGrid1.DataSource.DataSet) do
begin
SortedFields:='field_name';
SortType:=stAscending;
end;
результат: Б,В,Г,Д,А
Код: Выделить всё
with TZQuery(RxDBGrid1.DataSource.DataSet) do
begin
SortedFields:='field_name';
SortType:=stDescending;
end;
результат: А,Д,Г,Б,В.

Форум по zeos-у содержит лишь констатацию сего факта.
У кого нибудь корректно работает сортировка кириллицы в TZQuery?
heks
новенький
 
Сообщения: 29
Зарегистрирован: 23.07.2012 11:50:39

Re: ZeosDbo+PostgreSQL проблема сортировки кириллицы в TZQu

Сообщение alexs » 28.07.2014 22:39:28

В винде не работает :-(
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: ZeosDbo+PostgreSQL проблема сортировки кириллицы в TZQu

Сообщение heks » 29.07.2014 10:40:57

alexs писал(а):В винде не работает :-(

Спасибо :)
Проверил на Lazarus 0.9.30.4 ZeosDbo 7.0.0.-dev ubuntu 12.04 - сортировка работает корректно... :?
Куда копать?
Есть конечно план B - перенести сортировку на сервер, но хотелось бы меньшей кровью.
heks
новенький
 
Сообщения: 29
Зарегистрирован: 23.07.2012 11:50:39

Re: ZeosDbo+PostgreSQL проблема сортировки кириллицы в TZQu

Сообщение alexs » 29.07.2014 11:58:36

В линуксе всё работает норм. Это приколы виндового менеджера строк.
Я пока забил. Не критично.
heks писал(а):Lazarus 0.9.30.4

Чего такое старьё?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: ZeosDbo+PostgreSQL проблема сортировки кириллицы в TZQu

Сообщение heks » 29.07.2014 13:52:19

alexs писал(а):В линуксе всё работает норм. Это приколы виндового менеджера строк.
Я пока забил. Не критично.

я бы тоже забил, но не чего :D

углубляться в дебри fpc не стал, решил пока по рабоче-крестьянски (вдруг кому пригодиться):
Код: Выделить всё
unit ZDbcResultSet;
...
function TZAbstractResultSet.CompareRows(Row1, Row2: Integer;
  const ColumnIndices: TIntegerDynArray; const ColumnDirs: TBooleanDynArray): Integer;
...
vtString:
          (*было Result := AnsiCompareStr(Value1.VString, Value2.VString);*)
          Result:=WideCompareStr(UTF8Decode(PChar(Value1.VString)), UTF8Decode(PChar(Value2.VString))); (*стало*)
...

alexs писал(а):Чего такое старьё?

клиентура на маздае, лазарь из коробки с убунтой обновлять пока не стал, руки не доходят
heks
новенький
 
Сообщения: 29
Зарегистрирован: 23.07.2012 11:50:39


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 224

Рейтинг@Mail.ru
cron