Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 07.08.2013
Сообщений: 55
1
MS SQL

Combobox и Items

01.01.2015, 16:35. Показов 3554. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Казалось бы , тема разобрана по крошкам.
Суть така , пишу поисковик данных в таблице sql.
Никак не могу разобраться с Combobox.
Хочу что бы при клапании Combobox выпадал список данных одной колонки из таблицы (что бы не писать вручную).
Если вручную забить в Combobox данные через items и выбирать с этого списка , всё работает.

Как мне автоматом считывать данные с колонки и записывать их в items, а потом только выбрать с выпадающегося меню.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2015, 16:35
Ответы с готовыми решениями:

ComboBox и заполнение items
Здравствуйте. Есть combobox и его элементами являются данные из таблицы mssql. Есть запрос...

Заполнение значений Items автоматически из текстового файла в Combobox
Таблица заполняется DBComboBoxEh таким способом: procedure TForm2.DBComboBoxEh7Change(Sender:...

ComboBox.items: как получить значение по заданному индексу?
Собственно, вопрос в теме. Имеется Combobox с Style=csDropDown, известны все значения Items. Как...

Название папок в ComboBox>Items
Помогите плиз При нажатие на кнопку в ComboBox>Items должны вписываться название 2 папок...

9
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
01.01.2015, 18:33 2
yuoras, используйте компонент DBComboBox вместо обычного.
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
01.01.2015, 19:59 3
Цитата Сообщение от yuoras Посмотреть сообщение
Хочу что бы при клапании Combobox выпадал список данных одной колонки из таблицы
Ну что мешаеть написать так ?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TfrmMain.UserCombobox;
begin
   with DM.msqryUsers do
   begin
     Close;
     SQL.Clear;
     SQL.Add('select u_Login from users order by u_Login asc');
     Open;
   end;
    cbbUsers.Items.Clear;
    while not  DM.msqryUsers.Eof do
    begin
      cbbUsers.Items.Add(DM.msqryUsers.Fields[0].AsString);
      DM.msqryUsers.Next;
    end;
end;
Добавлено через 3 минуты
Цитата Сообщение от droider Посмотреть сообщение
используйте компонент DBComboBox вместо обычного.
Можно да. Но, Я не люблю применять пректе это " DBComboBox и DBEdit " всегда лучше написать на стандартного компонента все что хочешь. А то если чуть-чуть усложнит это задачу ! На пример
Т.З отбрпсивать-не отображать то данних который повторяетсия в таблице . DBComboBox это невозможно.
А на моего примере Я спаскойно магу написать
T-SQL
1
2
SELECT DISTINCT [Поля]
FROM [табле_наме]
Разработчик всегда должен написать что то своего . и не привикать все это стандартное " DBComboBox и DBEdit "
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
01.01.2015, 20:34 4
xxbesoxx, а разработчики Delphi от делать нечего придумали DBComboBox?
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
01.01.2015, 21:04 5
Цитата Сообщение от droider Посмотреть сообщение
делать нечего придумали DBComboBox?
Придумали .... Но, смотрите в начале заказчик просить что все данных можно было выбрать из ComboBox и на это случи можно применять DBComboBox
А когда одно и тоже запись повторяетсия в таблице, что потом делать на это DBComboBox?
Миниатюры
Combobox и Items  
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
01.01.2015, 21:20 6
Перепутал DBLookupComboBox c DBComboBox, хотя изначально подразумевал именно его. Это сути не меняет.
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Когда одно и тоже запись повторяетсия в таблице, что потом делать
1. В правильно спроектированной БД они повторяться не будут.
2. Можно использовать запрос типа
SQL
1
SELECT DISTINCT имя_поля FROM имя_таблицы;
и подключить DBLookupComboBox к запросу, тем самым, удалив из него повторяющиеся записи конкретного поля.

Цитата Сообщение от xxbesoxx Посмотреть сообщение
Разработчик всегда должен написать что то своего . и не привикать все это стандартное " DBComboBox и DBEdit
Это да. Только TComboBox не менее "стандартен", даже наоборот.

Опять же: отдельную категорию компонент для работы с БД не просто так выделили и сохраняют ее до сих пор.
1
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
01.01.2015, 21:38 7
Цитата Сообщение от droider Посмотреть сообщение
1. В правильно спроектированной БД они повторяться не будут.
2. Можно использовать запрос типа
Код SQL
1
SELECT DISTINCT имя_поля FROM имя_таблицы;
и подключить DBLookupComboBox к запросу, тем самым, удалив из него повторяющиеся записи конкретного поля.
1) Бывает, как вы правильно не проектировали что то повторяетсия (Такого бывает)
2) Запрос да , Я это тоже говорю . Но, подключить DBLookupComboBox к запросу заказчик не хочеть отбрасивать данных для просмотра , Он хочеть только при выборе DBLookupComboBox В таком случи зачем это ( DBLookupComboBox и DBComboBox ) ?
Магу спокоино выбрать еще одно ADOQuery и в цикле while заполнять стандартние ComboBox ... Можно и так тоже , Кому как удобно и зависить от (Тех. задачи) ....
1
1 / 1 / 0
Регистрация: 07.08.2013
Сообщений: 55
01.01.2015, 22:00  [ТС] 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TfrmMain.UserCombobox;
begin
   with DM.msqryUsers do // это что такое? Тут должно быть adoquery1?
   begin
     Close;
     SQL.Clear;
     SQL.Add('select u_Login from users order by u_Login asc');
     Open;
   end;
    cbbUsers.Items.Clear;  // тут combobox ?
    while not  DM.msqryUsers.Eof do
    begin
      cbbUsers.Items.Add(DM.msqryUsers.Fields[0].AsString);
      DM.msqryUsers.Next;
    end;
end;
Не могу разобраться
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
01.01.2015, 22:22 9
Лучший ответ Сообщение было отмечено yuoras как решение

Решение

Цитата Сообщение от yuoras Посмотреть сообщение
Не могу разобраться
Так понятно ?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.FormShow(Sender: TObject);
begin
  with ADOQuery do  
   begin
     Close;
     SQL.Clear;
     SQL.Add('select Имя_поля from Имя_таблица order by Имя_поля asc');
     Open;
   end;
    combobox.Items.Clear;   
    while not  ADOQuery.Eof do
    begin
      combobox.Items.Add(ADOQuery.Fields[0].AsString);
      ADOQuery.Next;
    end;
end;
Привикайте все компоненту назвать осмислене имя . Иначе, ваши проект будеть непонятно даже для вас
0
1 / 1 / 0
Регистрация: 07.08.2013
Сообщений: 55
01.01.2015, 22:22  [ТС] 10
Разобрался .Я только неделю Delphi учу.
Не ругайте строго
Всем по плюсу
1
01.01.2015, 22:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.01.2015, 22:22
Помогаю со студенческими работами здесь

Как заполнить Items ComboBox'a из Items другого ComboBox'a
Есть комбобокс на главной форме и комбобокс на Form2. Необходимо заполнить айтемс комбобокса на...

Items в ComboBox
Есть 3 ComboBox`а и в каждом из них по 3 одинаковых значения, подскажите, как сделать так, чтобы...

ComboBox.Items[i]
Задача банальна до отупения но программируя уже 24й час завис. Хелп. Необходимо значениями comboBox...

Combobox and Items!
Я хочу сделать combobox (-ы) с выбором даты рождения. В combobox с днями я добавил коллекцию из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru