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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 19:47   #1
Trikster
Пользователь
 
Аватар для Trikster
 
Регистрация: 11.02.2011
Сообщений: 31
Печаль Сортировка+ComboBox

БД в access, использую ADO.
Код:
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Студенты ORDER BY'+QuotedStr(ComboBox1.Text) );
  ADOQuery1.Open;
что бы ни находилось в комбобоксе, сортирует по убыванию первое индексное поле и все!
Подскажите пожалуйста как это исправить?!
Trikster вне форума Ответить с цитированием
Старый 04.06.2011, 20:02   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

вместо ComboBox1.Text: ComboBox1.Items.Strings[ComboBox1.ItemIndex] (только для ItemIndex>=0)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.06.2011, 20:04   #3
Trikster
Пользователь
 
Аватар для Trikster
 
Регистрация: 11.02.2011
Сообщений: 31
По умолчанию

точно такой же результат(
Trikster вне форума Ответить с цитированием
Старый 04.06.2011, 20:15   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
ADOQuery1.SQL.Add('SELECT * FROM Студенты ORDER BY '+ComboBox1.Items.Strings[ComboBox1.ItemIndex]);
Пробел после BY и обязательное наличие поля, название которого совпадает с ComboBox1.Items.Strings[ComboBox1.ItemIndex]. Если имя поля специфично (с пробелом например) взять в []
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.06.2011, 20:17   #5
Trikster
Пользователь
 
Аватар для Trikster
 
Регистрация: 11.02.2011
Сообщений: 31
По умолчанию

пробел есть, поле совпадает, не специфичное поле - все так же(

извиняюсь, не заметил что в вашем коде отсуnствует Quotedstr) все работает, спасибО!

Последний раз редактировалось Trikster; 04.06.2011 в 20:24.
Trikster вне форума Ответить с цитированием
Старый 05.06.2011, 04:25   #6
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

По сути и тут все правильно с ComboBox1.Text

Код:
ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Студенты ORDER BY'+QuotedStr(ComboBox1.Text) );
  ADOQuery1.Open;
только чуть поправить

Код:
ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Студенты ORDER BY ' + ComboBox1.Text);
  ADOQuery1.Open;
QuotedStr - значит строка в ковычках, т.е. String, что применяется только для записей ... а в данном случае используется имя поля, а не запить
Gulik вне форума Ответить с цитированием
Старый 05.06.2011, 10:24   #7
Trikster
Пользователь
 
Аватар для Trikster
 
Регистрация: 11.02.2011
Сообщений: 31
По умолчанию

Цитата:
применяется только для записей ... а в данном случае используется имя поля, а не запись
приму к сведению)
Trikster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
Combobox -> DBGrid -> Combobox... EXTREEM БД в Delphi 2 20.12.2010 18:19
Разделение ComboBox на 3 ComboBox-a artemavd Общие вопросы Delphi 1 21.07.2010 08:02
Сортировка в ComboBox Anton1997 Помощь студентам 5 20.01.2009 09:05
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45