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

Вниз

Как сортировать...?   Найти похожие ветки 

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

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1078874098
NetKnight
2004-03-10 02:14
2004.03.28
Report in PDF?


14-1078175489
Игорь Шевченко
2004-03-02 00:11
2004.03.28
Катя, с днем рождения!


8-1069105502
oens
2003-11-18 00:45
2004.03.28
Как, сделать, спектроанализатор ,как в winamp e ?


4-1073733697
FireMan_Alexey
2004-01-10 14:21
2004.03.28
Hooks


1-1078405248
Silver_
2004-03-04 16:00
2004.03.28
В OnCreate Формы требуется Application.Terminate но...