Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
15-1149513475
infom
2006-06-05 17:17
2006.07.02
Компоненты для работы с большими целыми числами.


15-1149578469
Der Nechk@ssoff
2006-06-06 11:21
2006.07.02
iKernel.exe


15-1147704844
Новичоккк
2006-05-15 18:54
2006.07.02
Ничего не понимаю


2-1148848191
Олег_
2006-05-29 00:29
2006.07.02
Общие


3-1146821916
Lida
2006-05-05 13:38
2006.07.02
Как создать SQL запрос?