![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка ADODataSet [MSSQL]
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]Ух ты!
Какое хорошее свойство!