Форум: "Базы";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Внизrecordset.sort, похоже, некорректно работает. Найти похожие ветки
← →
Bless © (2006-05-03 18:06) [0]Проверьте, кому не лень.
Есть таблица t, с единственным полем vnuk varchar(50) со значениями:
!!!<!!
!!!<!!!!
!!!<!-
!!!<!-!\
на форме есть компонент q: TАDODataset
q.commandtext:= "select * from t"
ну и грид для "посмотреть".
Также есть кнопка с onclick-ом:
q.Active := false;
q.active := true;
q.Sort := "vnuk ASC";
После нажатия на кнопку поля сортируются в таком порядке:
!!!<!-
!!!<!!
!!!<!!!!
!!!<!-!\
что несколько отличается от того, что я ожидал и что выдает запросselect * from t order by vnuk
в query Analizer-е.
Может быть этому есть разумные объяснения помимо сабжа?
версия MDAC: 2.81.1117.0
← →
Johnmen © (2006-05-03 18:17) [1]QA выдаёт в том же порядке.
А вот сам порядок необъясним...:)
← →
sniknik © (2006-05-03 19:25) [2]похоже вмешивается "колатион", от него зависит будет ли CASE зависимость локализованных слов в сортировке и т.д. и похоже символы "-" "!" оно не воспринимает... для него в преодразованиях они один "вес" имеют...
проверить можно убрав его вообще (сделать бинарную сортировку)
select * from t order by vnuk COLLATE Cyrillic_General_BIN
должно измениться.
← →
Anatoly Podgoretsky © (2006-05-03 20:00) [3]Именно так, в большинстве collation символ - игнорируется, воспринимается как перенос или разделитель. Сделано для того что бы 123-45-37б 123-4567 и 12345678 были одинаковыми, а они и есть одинаковые. Если не устраивает то есть двоичная сортировка.
← →
Johnmen © (2006-05-03 21:35) [4]М-дя... Билл Гейтс совсем офанарел в своём мудрствовании, желая облегчить жизнь ослабленным программерам...:)))))
← →
Bless © (2006-05-04 09:33) [5]
> sniknik © (03.05.06 19:25) [2]
Странно, что у всех order by выдал тоже неправильный порядок. Я-то проверял на двух таблицах с collation для столбца:
SQL_Latin1_General_CP1251_CS_AS
SQL_Latin1_General_CP1251_CI_AS (по умолчанию)
и все было ОК.
> Anatoly Podgoretsky © (03.05.06 20:00) [3]
А почему 123-45-37б, 123-4567 и 12345678 - одно и то же?
И откуда вы все это знаете? Хотелось бы почитать.
Насколько я понял, recordset.sort не заработает, ведь там collation не укажешь :(
← →
Zz_ (2006-05-04 12:00) [6]http://support.microsoft.com/default.aspx?scid=kb;en-us;305704
← →
Bless © (2006-05-04 13:03) [7]За ссылку спасибо.
Еще б понять почему recordset.sort не работает.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c