Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Не работает DBComboBox   Найти похожие ветки 

 
anton2v ©   (2003-04-01 16:29) [0]

Ставлю на форму DBComboBox, задаю DBSource и DataField и ожидаю что при запуске программы он мне будет вываливать в списке все значения нужного мне поля, а он вываливается пустой. Работаю через ADO Visual FoxPro Driver.


 
Mike_Goblin ©   (2003-04-01 16:30) [1]

Используй DBLookupComboBox


 
anton2v ©   (2003-04-01 16:35) [2]

а зачем же тогда DBComboBox нужен, я понимаю, что DBLookupComboBox используется для выборки из другой таблицы не так?


 
Соловьев ©   (2003-04-01 16:38) [3]


> он вываливается пустой

Items смотрел?


 
anton2v ©   (2003-04-01 16:58) [4]

Если я использую DBLookupComboBox он пишет Circular Data links are not allowed.


 
Соловьев ©   (2003-04-01 17:02) [5]

не все данные указал.


 
Mike Kouzmine   (2003-04-01 17:08) [6]

Лист соурс и дата соурс - одинаковый, а надо разные.
Для комбо добавь итемс


 
anton2v ©   (2003-04-02 09:00) [7]

А если мне нужно выбирать данные из одной таблицы и в нее же вставлять?


 
ЮЮ ©   (2003-04-02 09:14) [8]

Такой приём особенно удачен при работе с ещё пустой таблицей :-)

Выбирать всё равно надо запросом с DISTINCT или GROUP BY + HAVING, так что создавай ещё один Запрос + DataSource, не жадничай!


 
Соловьев ©   (2003-04-02 09:18) [9]


> одной таблицы и в нее же вставлять?

попробуй подсоеденить еще один датасерс и его сделать дата. А другой пусть будет лист. В крайнем случае, тебе никто не мешеает еще положить такую же таблицу.


 
anton2v ©   (2003-04-02 09:25) [10]

решил использовать следующую конструкцию, заработало, а проще сделать нельзя?

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:29) [11]


> if DBComboBoxEquipType.Items.IndexOf(ADOTableEquips.FieldByName("equiptype").AsString)=-1
> then

зачем? ты же сделал:

> DBComboBoxEquipType.Items.Clear;



 
ЮЮ ©   (2003-04-02 09:37) [12]

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;


 
anton2v ©   (2003-04-02 12:31) [13]

2ЮЮ Thanks оптимизировал с твоим примером, а Create table ADOQuery может делать или только ADOCommand ?


 
Соловьев ©   (2003-04-02 12:35) [14]


> Create table ADOQuery может делать

может, и не только create...


 
Виталий   (2003-04-03 12:45) [15]

Я тоже столкнулся с неживым DBComboBox. Можно, конечно, заполнять Items. Тогда, извините, при чём здесь DB? Чем этот компонент отличается от ComboBox? :-)


 
vopros ©   (2003-04-03 14:15) [16]

>Виталий (03.04.03 12:45)

При изменении значения в Dbcombo меняеться значение в датасет.
А чтобы это происходило и с обычным combo надо ручками еще поработать.



Страницы: 1 вся ветка

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
14-67476
Феликс
2003-04-02 21:52
2003.04.21
Чудеса какие :)


1-67311
Лана Розанова
2003-04-09 09:45
2003.04.21
Округление


3-67180
Shirson
2003-04-03 13:33
2003.04.21
В чём грабли с createBlobStream?


6-67410
Ocean
2002-12-03 11:28
2003.04.21
Delphi7: где NMSMTP?


1-67390
anbezr
2003-04-10 14:15
2003.04.21
TForm1 = class(TMyForm) - в Object inspector не видно свойств