Я использую следующие в моей CommandText
собственности DataSet
Я использую:DBGrid/DataSet не может сортировать согласно SQL заявление, установленного в CommandText
SELECT *
FROM table_name
ORDER BY FIELD(priority, 'urgent', 'normal'),
FIELD(state, 'wait', 'executed', 'done')
Он должен сортировать данные я отображающее в DBGrid
, подключенного к этой DataSet
, как это:
-
- Строки, содержащие
urgent
вpriority
столбец должен запустите список DBGrid. - Затем список должен продолжать с теми, помеченными как
normal
вpriority
колонки
- Строки, содержащие
-
- следует, отмеченным как
wait
вstate
колонки, - следует, отмеченным как
executed
в колонкеstate
, - и, наконец, список заканчивается на отметках
done
в столбцеstate
.
- следует, отмеченным как
Но это не так, а на самом деле это вид делает, но это на самом деле наоборот. Вот быстрое видео, которое я сделал, чтобы показать вам, Что происходит, может быть, вы можете получить более четкое представление таким образом:
Я предполагаю, что это из-за либо ID column
я использую или Date column
, но если да, я понятия не имею, как и почему.
Это как эти 2 колонки выглядят как/настроены:
- ID столбец устанавливается в качестве начальной и Unique и AUTO_INCREMENT - это все, нет индекса или любой из других вариантов Если это не те 2 столбца проблемы, то, возможно, DBGrid?
Я использую RAD Studio 10 Сиэтл, DBEXPRESS компоненты (TSimpleDataSet и т.д.) и БД MySQL
Любые мысли о том, как это исправить? благодаря!
Я никогда не использовал Field (в MySql до сих пор, но кажется, что вы используете его неправильно. Первый параметр для поля (функция должна быть целым числом). Вы не показываете, есть ли у вас поля с приоритетом или состоянием , но я думаю, что вы это сделали, или sql потерпит неудачу. Это не имеет ничего общего с Delphi. – nolaspeaker
@nolaspeaker У меня есть столбцы с именем priority и state, значения ячеек для этих столбцов описаны выше (срочные, нормальные, ожидания и т. д.).). Столбцы с именем priority и state действительно настроены на VarChar, идентификатор столбца установлен как INT - вы говорите, что это может быть проблемой, и что 1-й столбец в используемом мне поле должен быть INT (в этом случае, приоритет?) – Petzy
Предложите вам прочитать об использовании функции Field. – nolaspeaker