Сортировщик TRxDBGrid для TSQLQuery

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

Sash0k
новенький
Сообщения: 43
Зарегистрирован: 19.01.2009 10:39:27
Откуда: Вятка - Киров

Сообщение Sash0k »

Нашёл небольшой баг в сортировщике TRxSortSqlDB:
Если запрос оканчивается на ; (точку с запятой), то сортировка не будет работать, потому что регулярка внутри exsortsql добавляет ORDER BY после неё, не удаляя её из запроса.
Как-то привык все SQL-запросы завершать, поэтому было неочевидно, пока не посмотрел дебаггером :)
Решение на стороне приложения простое, типа такого, но было бы здорово поправить и библиотеку.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А что в сортировщике править? Патчик сделаешь?
Sash0k
новенький
Сообщения: 43
Зарегистрирован: 19.01.2009 10:39:27
Откуда: Вятка - Киров

Сообщение Sash0k »

там в одну строку вся доработка :)

cmd:= StringReplace((ADataSet as TSQLQuery).SQL.Text,';','',[rfReplaceAll]);
вместо cmd:= (ADataSet as TSQLQuery).SQL.Text;

Хотя, это решает только мою проблему, но не решает возможные другие.
Более логичен алгоритм, если искать в cmd первое вхождение точки с запятой и вырезать всё, что правее неё.
Вложения
exsortsql.pas.zip
(2.03 КБ) 698 скачиваний
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А если в тексте запроса встретится конструкция:

Код: Выделить всё

select
  '1;1' as blablabla
from aaaa

Оноже перекорёжит весь текст.
Так не очень хорошо.
zs02
незнакомец
Сообщения: 3
Зарегистрирован: 19.11.2010 14:05:21

Сообщение zs02 »

А можно как-нибудь прикруть сортитовщик к IBX
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А он умеет внутри себя без переоткрытия запрса сортировать?
Ответить