Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка ADODataSet [MSSQL]


Страницы:   1 2 3 4 5

Ega23 ©   (2007-03-13 16:35:00) 

Есть ADODataSet с открытым набором данных.
Как его сортировать по разным столбцам на клиенте, не переоткрывая? IndexDefs добавлять?


Jan   (2007-03-28 10:16:00) [61]


> MsGuns ©   (28.03.07 09:06) [23]

Отсортируй в MS SQL по полю которое берется из таблицы, которая присоедена left join. Только так чтобы у тебя в главной было тыс так 200 и в присоедененной тыс 300 и посмотри через сколько минут у тебя база tempdb загнется.


MsGuns   (2007-03-28 09:06:00) [62]

>Jan   (27.03.07 12:34) [22]

глупости


Jan   (2007-03-27 12:34:00) [63]

только вот сортировать не рекомендую по left join, лучше сделать два запроса(в одном данные получают через join, а во втором not exists фильтр) и обьеденить  их union all.


Jan   (2007-03-27 12:32:00) [64]

лукап - это пережиток. давно уже все делают через join +
самописные контролы или EhLib.


Плохиш   (2007-03-27 12:29:00) [65]


> Не нужны т.к. можно как-то иначе эти данные выудить, не
> через создание lookup в датасете? (я пока другого способа
> не знаю)

Пора пойитать про связи таблиц в запросах.


MsGuns   (2007-03-27 12:16:00) [66]

> не сортирует по lookup-полям датасета.

Что за бред ?


stone   (2007-03-27 11:57:00) [67]


> logslava   (27.03.07 11:53) [17]

Что мешает отображать в гриде результат запроса с уже готовыми полями, отображающими список покупок и поставщика. Сортировать можно будет как угодно.


logslava   (2007-03-27 11:53:00) [68]

2 Плохиш

Данные не меняются - это я в том смысле, что в случае, когда пользователь смотрит на список (наример как в моем случае) покупок и хочет отсортироваеть его сначала по дате, потом по наименованию, потом еще по чему нибудь он не меняет данных в базе, зачем же в таком случает вновь выполнять запрос и вновь закачивать их в датасет?
Речь не идет о каких-то постоянных, никем не изменяемых данных

2 stone

> для отображения в гриде лукап-поля не нужны

Не нужны т.к. можно как-то иначе эти данные выудить, не через создание lookup в датасете? (я пока другого способа не знаю)

Или же вы имеете ввиду, что лучше вообще избежать их показа пользователю? В моей задаче отображая список покупок нужно отображать и поставщика. Все данные о поставщиках - в справочнике, а связь со справочником таблиц через VendorID


stone   (2007-03-27 11:39:00) [69]


> logslava   (27.03.07 11:36) [14]
> stone, вы серьезно?

Вполне, для отображения в гриде лукап-поля не нужны, а пользоваться ими для ввода данных никто не мешает. Если же данные вводятся непосредственно в гриде, можно написать обработчик, который при попытке сортировать по лукап-полю, будет сортировать по какому надо.


Плохиш   (2007-03-27 11:38:00) [70]


> logslava   (27.03.07 11:25) [12]

Если данные не меняэтся, то выкинуть все лукап-поля и включить их в запрос.


logslava   (2007-03-27 11:36:00) [71]

stone, вы серьезно?


stone   (2007-03-27 11:31:00) [72]


> logslava   (27.03.07 11:25) [12]

Как вариант - отказаться от лукап-полей


logslava   (2007-03-27 11:25:00) [73]

может быть, я в Борланде не работаю...

И все-таки, как это делается?
Ну не логично как-то перекачивать все данные снова от сервера на мой клиент только лишь для изменения порядка отображения... Ведь сами данные-то не изменились и это заведомо известно.


Ega23   (2007-03-27 11:19:00) [74]


> Проблема в том, что Sort не сортирует по lookup-полям датасета.


И не должен.


logslava   (2007-03-27 11:16:00) [75]

Позвольте оживить сабж....

Проблема в том, что Sort не сортирует по lookup-полям датасета..
Можно ли как-то сортировать по таким полям не выполняя ПЕРЕ-запроса типа
...SQL.Text := 'select .... order by MyField desc'
...SQL.Text := 'select .... order by MyField asc'


DimonS   (2007-03-15 09:06:00) [76]

А еще вот такая конструкция есть, ее постоянно и использую:

procedure TFrSpr.DBGridEh4TitleBtnClick(Sender: TObject; ACol: Integer;
 Column: TColumnEh);
begin
 TAdoDataset(DbgridEh1.DataSource.dataset).Sort := Column.FieldName;
end;


Jan   (2007-03-14 09:03:00) [77]


> MsGuns ©   (13.03.07 21:06) [6]

ага и еще Properties где развернуться можно :)


Ega23   (2007-03-14 08:57:00) [78]


> Например, ReQuery


Этот я знаю. Я некую свою обёртку использую.


MsGuns   (2007-03-13 21:06:00) [79]

>Ega23 ©   (13.03.07 17:39) [5]
>Какое хорошее свойство!

Там еще кое-что вкусное есть. Например, ReQuery


Ega23   (2007-03-13 17:39:00) [80]

Ух ты!
Какое хорошее свойство!


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо