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

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

26.12.2017, 11:13. Показов 8009. Ответов 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
4892 / 2825 / 866
Регистрация: 04.10.2012
Сообщений: 10,270
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
4892 / 2825 / 866
Регистрация: 04.10.2012
Сообщений: 10,270
27.12.2017, 09:15
tsareva, ну, так сортируйте по Mark приведенным мной запросом. В чем проблема?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
27.12.2017, 09:22  [ТС]
в том, что сортировка не идет.
0
Эксперт Pascal/Delphi
 Аватар для droider
4892 / 2825 / 866
Регистрация: 04.10.2012
Сообщений: 10,270
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
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
Модель здравоохранения 12. добавление болезней через ресурпул, как аварии
anaschu 22.05.2026
Болезни — это ключевая часть нашей модели. Нам нужно, чтобы работник периодически уходил на больничный, его задание при этом зависало, а после выздоровления работа возобновлялась. Реализуем это двумя. . .
Модель здравоохранения 11. Создаём классы Задание и Работник
anaschu 22.05.2026
В AnyLogic каждая заявка и каждый ресурс — это объект определённого класса. Нам нужно создать два класса: Задание (заявка) и Работник (ресурс). Класс Задание В дереве проекта нажимаем правой. . .
Модель здравоохранения 10. Новая модель, смотрим, как добавлять логические блоки, и что писать внутри
anaschu 22.05.2026
Открываем AnyLogic, создаём новый проект. В дереве проекта появляется класс Main — это главный агент, в котором будет жить вся наша логика. Палитра блоков Слева находится палитра. Нас интересует. . .
модель ЗдравоСохранения 9. Новая модель, разбираемся, как ее создавать
anaschu 22.05.2026
В этой серии постов мы построим модель небольшого рабочего коллектива. Сотрудники получают задания, выполняют их, иногда болеют — и мы хотим посчитать, сколько это стоит компании. Метод. . .
[golang] Linked list
alhaos 22.05.2026
Связный список / Linked list Связный список структура данных позволяющая хранить список значений, в отличии от массива в памяти хранится не сплошным куском, а отдельными частями которые ссылаются. . .
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru