Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо