Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 22:45   #1
Pang
Пользователь
 
Регистрация: 22.02.2008
Сообщений: 21
По умолчанию ORDER BY динамический

Как сделать сортировку по полю которое выбирается во время работы программы посредством combobox

Вот такие SQL запросы в Query:
Цитата:
Order by FamilyST (статическое название поля) - вот так сортировка работает

Order by :P (параметр типа string) - вот так не работает
Вот так пытаюсь передать значение параметра :P
Цитата:
procedure TForm.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: datamodule2.Table_Student.Params[0].AsString:='';
1: datamodule2.Table_Student.Params[0].AsString:='FamilyST';
2: datamodule2.Table_Student.Params[0].AsString:='NameST';
3: datamodule2.Table_Student.Params[0].AsString:='OtcheST';
4: datamodule2.Table_Student.Params[0].AsString:='Num_zach';
end;
Pang вне форума Ответить с цитированием
Старый 16.05.2010, 23:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Не всё в запросе можно заменить на параметры.
Возможно и в order by тоже параметры использовать нельзя.
а не проще ли менять текст запроса (вставлять после ' order by ' имя поля) ?
Код:
procedure TForm.ComboBox1Change(Sender: TObject);
begin
datamodule2.Table_Student.Close;
case ComboBox1.ItemIndex of
0: datamodule2.Table_Student.SQL.Text:=MainSQL;
1: datamodule2.Table_Student.SQL.Text:=MainSQL + ' order by FamilyST';
2: datamodule2.Table_Student.SQL.Text:=MainSQL + ' order by NameST';
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.05.2010, 23:51   #3
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Код:
Query.SQL.Add('Order by FamilyST ' + #39 + YouParam + #39);
Query.ExecSQL;
этот метод динамический или формируемый, а вы используете параметрический.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический график rmise Общие вопросы Delphi 3 07.04.2010 16:58
ORDER BY Sidorow2001 Microsoft Office Access 1 17.02.2010 17:19
Динамический массив Ueshua Общие вопросы C/C++ 3 19.12.2009 22:12
Динамический pagecontrol BuT@JL Общие вопросы Delphi 2 30.03.2009 19:12
динамический массив Dimon Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2008 18:08