Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2018, 15:22   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию Конфликт 'order by' в запросе, при использовании встроенной сортировки DBGridE

Доброе время суток форумчане.

При открытии программы, я как всегда открываю dataset запросом.
Код:
ADataSet.Close;
        IBDataSet.SelectSQL.Clear;
        IBDataSet.SelectSQL.Add(ARequire);
        IBDataSet.DisableControls;
        IBDataSet.Open;
В запросе «ARequire», содержится «order by».
Захотел восспользоваться сортировкой DBGridEh, - сортировка работает, если в запросе «SelectSQL» предварительно нет предложения «order by».

Т.е. это получается, мне при нажатии на колонку (в «DBGridEh1TitleBtnClick»), нужно редактировать запрос в «SelectSQL», т.е. убирать из него «order by»? И как это сделать?

Спасибо за ответ
KBO вне форума Ответить с цитированием
Старый 17.06.2018, 17:39   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если его там не будет, то и убирать не надо )) Не в курсе как этот грид сортирует, могу предположить, что он по новой запрос выполняет, вставляя туда order by, отсюда и ошибка
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.06.2018, 22:08   #3
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
вставляя туда order by, отсюда и ошибка
Это понятно...
пришлось в событии "на нажитие загловка колонки", делать свой запрос уже со своим "order by". Т.о. он вытерает старый запрос со своим "order by", и формирует новый, с новым "order by".

А в первоначальном запросе, "order by" нужен, т.к. первоначальна нужна сортировка
KBO вне форума Ответить с цитированием
Старый 26.06.2018, 11:35   #4
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 979
По умолчанию

Код:
        IBDataSet.SelectSQL.Clear;
        IBDataSet.SelectSQL.Add(ARequire);
ARequire тут весь запрос или только сортировка?
если запрос с параметрами (в тексте есть :name_par) то вообще всё сломается с такими присвоениями.

так и пишите нужному столбцу. SelectSQL это тип Tstrings, значит надо определить только какая строка с ордер бай. переберите все SelectSQL[0] до SelectSQL[n], лучше конечно ордер писать в определённую строку легче будет.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось IliaIT; 26.06.2018 в 11:39.
IliaIT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт при вводе с использованием Scanner MaxioN Общие вопросы по Java, Java SE, Kotlin 0 18.03.2017 17:05
В SQL запросе при использовании LIKE не ищет по маске с кириллицей (русскими буквами) nelo_001 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 14 20.12.2015 23:52
Ошибка при использовании vfprintf в dll при stdout CHERTS Visual C++ 1 25.10.2013 15:18
ошибка при использовании в SQL запросе ':00' ZHDN БД в Delphi 3 26.07.2011 08:11
конфликт разделителей чисел при использовании ControlSource (excel + форма vba) alvazor Microsoft Office Excel 2 06.07.2009 12:24