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

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

Как отсортировать по переменному полю? [D6, IB6.x]


InokSilver ©   (2003-01-27 06:10:00) 

Проблема такая
Нужно отсортировать таблицу по полю который будет выбирать пользователь(ну то есть он будет кликать по шапке грида)
select pole1, pole2,... from table1 order by :usl
какой тип нужно выбрать в params для :usl
где :usl="pole1"(либо pole2)
перепробовал всякие варианты везде еррор
Нужно именно через Params
а пока пихаю весь запрос в query.sql.add select pole1, pole2 from table1 order by pole1


Alexandr   (2003-01-28 07:07:00) [1]

GU чего?
и где вы токо таких умных слов набрались?


Мышь   (2003-01-28 00:56:00) [2]

По моему опыту все рано или поздно упирается в написание своего GUI, так как посылать новый запрос - это долго и криво, но зато никто не мешает показать пользователю записи в произвольном порядке. Да и во всех GUI-библиотеках все равно что-нибудь, да не устраивает, особенно, если заказчик развитый... :)


KIR   (2003-01-27 20:20:00) [3]

Можно использовать функцию Format и динамически формировать запрос:

procedure SotrGrid(order: Byte);
var
S: String;
begin
S := "ORDER BY %s";
Query.SQL.Clear;
Query.SQL.Add("SELECT");
Query.SQL.Add("*");
Query.SQL.Add("FROM");
Query.SQL.Add("MyTable");
Case order of
0: Query.SQL.Add(Format(S,["pole1"]));
1: Query.SQL.Add(Format(S,["pole2"]));
2: Query.SQL.Add(Format(S,["pole3"]));
end;
end;


Alexandr   (2003-01-27 13:11:00) [4]

Вот Вот.
Все на OLE DB драйвер для Interbase


ADOHelper   (2003-01-27 11:47:00) [5]

Если через ADO, то там есть свойство Sort
Пишешь
ADODataSet.Sort:="pole1";или
ADODataSet.Sort:="pole1 DESC";


Alexandr   (2003-01-27 08:58:00) [6]

1) Используя FIBPlus сортировать можно локально на клиенте
2) Ничего особенно плохого в изменении тескта SQL нету.
3) Ничего особенно сложного в формировании order by нету, особенно если пользоваться правильными компонентами


Suntechnic   (2003-01-27 08:13:00) [7]

Никакой тип выбрать не получится. Имена полей не могут быть параметрами, точно так же как и имена таблиц. Можно конечно SQL динамически генерировать, но... ИХМО на каждый клик мыши слать SQL запрос на сервер не стоит. Я бы пересмотрел логику, хотя всё зависит в конечном итоге от поставленной задачи.


Наверх

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