![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает DBComboBox [D7, dBase, FoxPro]
anton2v © (2003-04-01 16:29:00)Ставлю на форму DBComboBox, задаю DBSource и DataField и ожидаю что при запуске программы он мне будет вываливать в списке все значения нужного мне поля, а он вываливается пустой. Работаю через ADO Visual FoxPro Driver.
vopros (2003-04-03 14:15:00) [1]>Виталий (03.04.03 12:45)
При изменении значения в Dbcombo меняеться значение в датасет.
А чтобы это происходило и с обычным combo надо ручками еще поработать.
Виталий (2003-04-03 12:45:00) [2]Я тоже столкнулся с неживым DBComboBox. Можно, конечно, заполнять Items. Тогда, извините, при чём здесь DB? Чем этот компонент отличается от ComboBox? :-)
Соловьев (2003-04-02 12:35:00) [3]
> Create table ADOQuery может делать
может, и не только create...
anton2v (2003-04-02 12:31:00) [4]2ЮЮ Thanks оптимизировал с твоим примером, а Create table ADOQuery может делать или только ADOCommand ?
ЮЮ (2003-04-02 09:37:00) [5]ADOQueryEquips.SQL.Text :=
" SELECT DISTINCT equiptype FROM Table1 ORDER BY equiptype";
ADOQueryEquips.Open;
DBComboBoxEquipType.Items.Clear;
While not ADOQueryEquips.EOF do begin
DBComboBoxEquipType.Items.Add(ADOQueryEquips.Fields[0].Value);
ADOQueryEquips.Next;
end;
ADOQueryEquips.Close;
Соловьев (2003-04-02 09:29:00) [6]
> if DBComboBoxEquipType.Items.IndexOf(ADOTableEquips.FieldByName("equiptype").AsString)=-1
> then
зачем? ты же сделал:
> DBComboBoxEquipType.Items.Clear;
anton2v (2003-04-02 09:25:00) [7]решил использовать следующую конструкцию, заработало, а проще сделать нельзя?
procedure TfmEquip.LoadToItems;
begin
DBComboBoxEquipType.Items.Clear;
with Data do begin
ADOTableEquips.DisableControls;
SaveBookMark(ADOTableEquips);
ADOTableEquips.First;
while not ADOTableEquips.Eof do begin
if DBComboBoxEquipType.Items.IndexOf(ADOTableEquips.FieldByName("equiptype").AsString)=-1 then
DBComboBoxEquipType.Items.Add(ADOTableEquips.FieldByName("equiptype").AsString);
ADOTableEquips.Next;
end;
RestoreBookMark(ADOTableEquips);
ADOTableEquips.EnableControls;
end;
end;
Соловьев (2003-04-02 09:18:00) [8]
> одной таблицы и в нее же вставлять?
попробуй подсоеденить еще один датасерс и его сделать дата. А другой пусть будет лист. В крайнем случае, тебе никто не мешеает еще положить такую же таблицу.
ЮЮ (2003-04-02 09:14:00) [9]Такой приём особенно удачен при работе с ещё пустой таблицей :-)
Выбирать всё равно надо запросом с DISTINCT или GROUP BY + HAVING, так что создавай ещё один Запрос + DataSource, не жадничай!
anton2v (2003-04-02 09:00:00) [10]А если мне нужно выбирать данные из одной таблицы и в нее же вставлять?
Mike Kouzmine (2003-04-01 17:08:00) [11]Лист соурс и дата соурс - одинаковый, а надо разные.
Для комбо добавь итемс
Соловьев (2003-04-01 17:02:00) [12]не все данные указал.
anton2v (2003-04-01 16:58:00) [13]Если я использую DBLookupComboBox он пишет Circular Data links are not allowed.
Соловьев (2003-04-01 16:38:00) [14]
> он вываливается пустой
Items смотрел?
anton2v (2003-04-01 16:35:00) [15]а зачем же тогда DBComboBox нужен, я понимаю, что DBLookupComboBox используется для выборки из другой таблицы не так?
Mike_Goblin (2003-04-01 16:30:00) [16]Используй DBLookupComboBox