Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1149830887
VitV
2006-06-09 09:28
2006.07.02
DBGrid перенос строк


2-1150047962
Adios
2006-06-11 21:46
2006.07.02
ShellListView


15-1149576772
tesseract
2006-06-06 10:52
2006.07.02
решил наконец сайт cправить


2-1150207607
Тимофей Юрьевич
2006-06-13 18:06
2006.07.02
ошибка


1-1148317839
Juice
2006-05-22 21:10
2006.07.02
Drag&amp;Dock и позиция дочерних элементов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский