Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.03.2009, 11:31
Nat Nat вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 3
Репутация: 10
Вопрос SQL & Delphi

Название темы конечно слишком общее, но это все только потому, что у меня могут потом возникнуть ещё вопросы на эту тему
Первый вопрос:
результатом SQL запроса через adoquery является таблица с одним столбцом.Допустим список городов(Москва,Воронеж,Владивосток) Эту таблицу я могу вывести через dbgrid. adoquery->datasource->dbgrid.
Но мне нужно сделать выпадающий список. Т.е используя DBLookupComboBox (или DBComboBox, честно говоря не понял пока ещё чем они отличаются, сейчас попытаюсь что-нибудь в Яндексе найти). Но с DBLookupComboBox не получается как с dbgrid, там надо указать datafield.
Можно ли как то отобразить результат запроса в список?
Заранее спасибо
Ответить с цитированием
  #2  
Старый 27.03.2009, 11:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Как-то у вас одно противоречит другому. Вы получаете набор данных в результате запроса, так и работайте с ним как с набором данных. Зачем его перегонять в список значений?
Для выпадающего списка в вашем случае лучше использовать DBLookupComboBox т.к. у вас уже есть набор значений. То что вы неразобрались, как его настроить правильно неговорит что он неподходит для ваших целей. А вообще поиском воспользуйтесь, здесь уже на эту тему проскакивали сообщения.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 27.03.2009, 17:31
Nat Nat вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 3
Репутация: 10
По умолчанию

Нашел такой вариант. Через listsource
dblookupcombobox1.ListField:='uName';
dblookupcombobox1.keyfield:='uID';
только не совсем понятно чем listsource отличается от datasource и для чего нужен keyfield
Ответить с цитированием
  #4  
Старый 27.03.2009, 17:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

KeyField определяет какое из полей является ключевым и будет копироваться в главный источник данных. Ну а DataSource это и есть главный испочник данных.

Вообще-то обычно этот компонент используется при реализации выбора из справочника. Допустим у нас есть таблица Т1(ID, DicID), основная, и таблица D1 (ID, Name), справочник. Так вот у этого контрола надо настроить свойства так:
DataSource = T1 (естественно, это дадасорс на соответсвующий ado-компонент)
Field = DicID
ListSource = D1
ListField = Name
KeyField = ID
таким образом, при выборе наименования в списке, его ID помещается в поле DicID главной таблицы. Вот.
Ответить с цитированием
  #5  
Старый 27.03.2009, 17:46
Nat Nat вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 3
Репутация: 10
По умолчанию

Примерно понятно. Спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025