Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизКак сортировать...? Найти похожие ветки
← →
UnMi (2004-02-24 16:40) [0]Здравствуйте всем!
Вот столкнулся с проблемой, при подстановке в поля DataSeta своих значений (OnGetText) не получается их потом по этим
значениям отсортировать. То есть сортироваться то сортируется, но не правильно - по первоначальным значениям. Может кто сталкивался?
← →
Johnmen © (2004-02-24 16:48) [1]А как вообще можно сортировать по несуществующим значениям ???
Как ты по ним сортируешь ???
← →
Anatoly Podgoretsky © (2004-02-24 16:48) [2]А так и должно быть, нельзя сортироваться по несуществующему.
← →
Sandman25+1 (2004-02-24 16:50) [3]Можно попробовать добавить CASE в SELECT и по этому новому полю сортировать.
← →
UnMi (2004-02-24 17:10) [4]>Sandman25+1
Не, case точно не подходит, там ведь просто подстановка выражений на основе значений.
>Anatoly Podgoretsky :
А как быть?
Мне еще посоветовали воспользоваться какой нить табличкой (на основе TTable) и создать индекс по новому полю. И по нему сортировать. Может и получится. Попробую - напишу.
← →
Sandman25+1 (2004-02-24 17:22) [5][4] UnMi (24.02.04 17:10)
Какого вида подстановка нужна? В MSSQL довольно мощный CASE
← →
UnMi (2004-02-24 17:28) [6][5] Sandman25+1
Там в принципе не получится case использовать.
Есть строка, которая содержит номера (номеров может быть несколько).Так вот потом, в программе, номера заменяются определенными значениями. И надо как раз сортировать по ним.
← →
Sandman25+1 (2004-02-24 17:30) [7][6] UnMi (24.02.04 17:28)
А, понятно. Вместо того, чтобы добавить таблицу ссылок на номера, все засунули в одно поле? Про нормализацию слышали?
← →
Vlad © (2004-02-24 17:47) [8]
> UnMi (24.02.04 17:28) [6]
возможно TClientDataSet тебе поможет
← →
UnMi (2004-02-25 09:23) [9]>Sandman25+1 (24.02.04 17:30) [7]
Там есть ссылки на номера. Но дело в том, что номеров несколько!
И таблица должным образом нормализована. В том то и дело! Есть строка, куда записываются несколько номеров - ссылок на записи в другой таблице. Записываются по порядку. И сортируются данные по этому столбцу не на основании подставляемых значений, а на основе реальных значений.
>Vlad © (24.02.04 17:47) [8]
Я конечно попробую, но если честно, то с ADO TClientDataSet не рекомендуют.
← →
Sandman25+1 (2004-02-25 10:55) [10][9] UnMi (25.02.04 09:23)
То есть у Вас есть что-то типа
CREATE TABLE t(id INT, name CHAR(10), keys CHAR(100)), и данные типа
например, t(1, "первый","1,14,125,245")?
А следует сделать вот так:
CREATE TABLE t(id INT, name CHAR(10));
CREATE TABLE keys(id INT, key INT)
И данные:
t(1, "Первый"),
keys(1,1),
keys(1,14),
keys(1,125),
keys(1,245).
Тогда и посик будет быстрее работать, и с сортировкой проблем не будет.
← →
UnMi (2004-02-25 16:37) [11]>Sandman25+1 (25.02.04 10:55) [10]
Да, все это понятно. Спасибо огромное! НО!
У меня (вот ведь извращенца воспитали) типа так:
CREATE TABLE s(id INT, name CHAR(10))
CREATE TABLE f(id INT, name CHAR(10))
и данные: s([1,"1,13,15,35"],...)
f([1,"q"],[13,w],...)
причем f - тоже составная (из 2 состоит)
В итоге!
получаем гибрид s и f - temptable(1,"q,w....").
Вот так...
Сделал таки. И тоже извращенно.
Написал функцию на сервер, которая из представления отбирает то что мне надо, и клепает строку со значениями. Вот гемор!
← →
Sandman25+1 (2004-02-25 16:48) [12][11] UnMi (25.02.04 16:37)
Да, ИМХО функция была наилучшим решением помимо полной переделки.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.218 c