|
#1
|
|||
|
|||
Задачка
Значит есть простейшая бд с полями ID и NAME данные которой грузятся в combobox (поле NAME). Пользователь выберает данные в combobox'e после чего нужно получить соответственно ID итема. Поле NAME содержит данные которые могут быть идентичными, тоесть если делать запрос вида select ID from TABLE1 where NAME = 'Hello world' можно вернуться на неверную запись т.к в этом поле более одной записи с таким значением. Собствено, это и есть моя задачка
Когда делал через TreeView то в свойство Item.Data сразу загонял ID итема когда строил дерево, после чего успешно его считовал, не обращаясь к полю NAME. Возможно организовать что-нить подобное с combobox? Или может есть другие варианты? |
#2
|
||||
|
||||
1. Кинуть на форму кверик с запросом типа "select id, name from table".
2. Кинуть на форму DataSource(вкладка Data Access), задать в его свойствах DataSet - наш созданный кверик. 3. Вместо комбобокса кинуть на форму DBLookUpCombobox(Data Controls). 4. У комбобокса в свойствах выбрать: ListSource - наш датасоурс, ListField - выбрать name, а keyfield - ID. 5. При запуске проги естественно не забыть открыть наш кверик. 6. В DBLookUpCombobox.KeyValue будет храниться айдишник выбранного имени. Для наглядности кинуть на форму label и у комбобокса на событие onCloseUp прописать: Код:
procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject); begin Label1.Caption:= IntToStr(DBLookUpCombobox1.KeyValue); end; Google в помощь |
#3
|
|||
|
|||
Спасибо, всё получилось
Последний раз редактировалось mmonster, 17.11.2011 в 15:38. |