Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218

Сортировка по нажатию на столбец dbgrideh

26.12.2017, 11:13. Показов 8084. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Возникла необходимость отсортировать данные в dbgrideh по длине строк по нажатию на наименование столбца. Помогите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2017, 11:13
Ответы с готовыми решениями:

Столбец dbgrideh в dbcomboboxeh
привет всем!) Подскажите пожалуйста как весь столбец dbgrideh вставить в dbcomboboxeh? спасибо.

DBGridEh не печатает последний столбец
Сабж. Смотрю в превью, просто вывожу на печать весь Грид, есть все столбцы кроме последнего. В чём может быть бок?

Сортировка в DBGridEh
Настроил сортировку в DBGridEh по полю "счетчик" - все работает. Настроил сортировку в DBGridEh по полю "сумма" - не работает и...

32
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
26.12.2017, 16:50
Студворк — интернет-сервис помощи студентам
Простой способ - сортировать по числовому полю, в котором хранится длина строки и которое не отображается в DBGridEh.
0
Эксперт Pascal/Delphi
 Аватар для droider
4893 / 2826 / 867
Регистрация: 04.10.2012
Сообщений: 10,278
26.12.2017, 17:15
tsareva, у Вас поле "Обозначение" в таблице БД называется "Mark"?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
27.12.2017, 08:08  [ТС]
не совсем. в поле sName в гриде формируется запись из двух полей БД, которые называются Stand.Mark и Gost.Name. но сортировку в гриде мне надо делать именно по Mark.
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
27.12.2017, 08:42
Цитата Сообщение от tsareva Посмотреть сообщение
Сортировка должна идти именно по Mark,
Если внимательно посмотреть на изображение таблицы (в посте 18), то очевидно, что список отсортирован правильно.
Что-то еще особенное требуется в этой сортировке?

Добавлено через 9 минут
Отсортирован по значениям поля Mark.
А сортировка в этом случае по длине поля - это что-то новенькое в деле строительства баз данных.
Сортировка была, есть и остается лишь помощником при поиске информации в списках.
Здесь же сортировка по длине строки приведет к тому, что пользователь долго будет искать нужную ему строку.
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
27.12.2017, 09:00  [ТС]
я с Вами согласна, но пользователь попросил отсортировать список именно по длине строки и я не знаю, как ее осуществить...

Добавлено через 1 минуту
то есть сортировка, по желанию пользователя, должна идти по Mark от наименьшего значения к наимбольшему (от короткого к длинному).
0
Эксперт Pascal/Delphi
 Аватар для droider
4893 / 2826 / 867
Регистрация: 04.10.2012
Сообщений: 10,278
27.12.2017, 09:15
tsareva, ну, так сортируйте по Mark приведенным мной запросом. В чем проблема?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
27.12.2017, 09:22  [ТС]
в том, что сортировка не идет.
0
Эксперт Pascal/Delphi
 Аватар для droider
4893 / 2826 / 867
Регистрация: 04.10.2012
Сообщений: 10,278
27.12.2017, 09:30
Этот запрос в Management Studio нормально отрабатывает?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
27.12.2017, 09:30
Проблема у автора в том, что речь идет о длине составной строки, как я понял.
Можно испытать что-то в этом роде:

Delphi
1
2
3
4
5
6
7
8
9
  StandQuery.SQL.Text := 
   'with _str as '+
   '(SELECT Stand.*, Gost.Gost_ID AS GostID, Stand.Mark+' '+Gost.Name as SGName'+
   'Gost.Name AS GostName, Okp.Okp_ID AS OkpID,Okp.Klass,Okp.Naim '+
   'FROM Stand join Gost on Gost.Gost_Id = Stand.Gost_Id '+
   '     join Okp on Stand.Okp_Id=Okp.Okp_Id)' +
   'select * from _str order by len(SGName)';
 
  StandQuery.Open;
Здесь используется "общее табличное выражение" (начинается со слова with), в котором вытаскиваются все нужные из разных таблиц данные, в том числе, и составная строка. Затем в основном запросе можно уже сортировать и эту составную строку. По длине ли, по другим критериям ли.

Не по теме:

tsareva, прежде чем забивать текст запроса в свойство SQL методом Add, нужно очистить от предыдущего текста (Clear).
Если использовать свойство Text, то очистки не требуется.
На реальных данных, которых, разумеется, у меня нет, этот запрос не проверялся, но похожих работающих полно.

1
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
27.12.2017, 09:38  [ТС]
да, Management Studio отрабатывает как надо

Добавлено через 6 минут
Скандербег, все понятно вроде. объясните, что значит - SGName?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
27.12.2017, 09:41
Цитата Сообщение от tsareva Посмотреть сообщение
SGName
Это алиас (псевдоним) объединенной строки, по имени которого происходит сортировка и значения которого можно показывать в гриде (если надо).
Это такой же псевдоним как и GostID в выражении Gost.Gost_ID AS GostID
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
27.12.2017, 12:17  [ТС]
Скандербег, такая ошибка, причем в какой строке, не пойму никак...
Миниатюры
Сортировка по нажатию на столбец dbgrideh  
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
27.12.2017, 15:53
Не отлаженный на реальных данных запрос.
Например, при пристальном рассмотрении текста видно, что в конце второй строки текста запроса нет запятой.
Ну и понятно, что прежде чем запрос запихивать в свойство SQL его надо отладить в студии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2017, 15:53

DBgridEH сортировка
Доброго времени суток!!!!!!!!! SORRY за повторяющуюся тему но нигде не могу найти ответа. есть DBGridEH в SQl менеджере отображает...

Сортировка в dbgrideh delphi
Доброго времени суток! Возникла потребность сортировки в dbgrideh. Сначала сделал сортировку через adoquery, но потом на сайте узнал о...

Локальный фильтр и сортировка DbGridEh
Помогите разобраться с этой сортировкой и фильтром в DBGridEh, перелопатил кучу тем по этому поводу, нихрена не пашет ! Версия...

DBGridEh + FIBPlus не работает филтрация/сортировка
доброго времени суток. Проблема следующая- не могу настроить DBGridEh Использую бесплатные компоненты EhLib 3.6c Russian version....

По нажатию на Checkbox добавить значение в столбец таблички
Подскажите пожалуйста как по нажатию на Checkbox можно добавить значение в столбец таблички? база создана на sql server!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru