![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможно в одном запросе заполнить три DBComboBox-а?
S.T. © (2008-01-31 12:04:00)При открытии формы редактирования записи, заполняю DBComboBox неповторяющимися записями из определённого столбца:
DBComboBox.Clear;
if ADOQueryCB.Active then ADOQueryCB.Close;
ADOQueryCB.SQL.Text := 'SELECT DISTINCT Otdelenie FROM Pervaya'+
' WHERE Otdelenie IS NOT NULL ORDER BY 1';
ADOQueryCB.Open;
while not ADOQueryCB.EOF do
begin
DBComboBox.Items.Add(ADOQueryCB.Fields[0].asString);
ADOQueryCB.Next;
end;
ADOQueryCB.Close;
А можно как-то, в этом запросе, заполнить сразу три DBComboBox-а (по трём колонкам той-же таблицы БД)? Или три раза, с тремя ADOQuery надо это проделывать?
Johnmen (2008-02-03 02:53:00) [1]
> S.T. (02.02.08 21:47) [15]
> > не один и тот же комбо заполняется?
нет, их три!
> Приведи пример данных и результат.
Данные:
Иванов 14 2_дня
Сидоров 12 3_дня
Иванов 17 1_неделя
Петров 12 2_дня
В combobox-ах получается:
Иванов 14 2_дня
Сидоров 12 3_дня
Петров 17 1_неделя
Чо за бред?
Галинка (2008-02-03 02:41:00) [2]
ADOQueryCB.SQL.Text := 'SELECT DISTINCT Otdelenie, Vtoroe FROM Pervaya'+
' WHERE Otdelenie IS NOT NULL ORDER BY 1';
.....................
DBComboBox1.Items.Add(ADOQueryCB.Fields[0].asString);
DBComboBox2.Items.Add(ADOQueryCB.Fields[1].asString);
DBComboBox3.Items.Add(ADOQueryCB.Fields[2].asString);
S.T. (2008-02-02 21:47:00) [3]> не один и тот же комбо заполняется?
нет, их три!
> Приведи пример данных и результат.
Данные:
Иванов 14 2_дня
Сидоров 12 3_дня
Иванов 17 1_неделя
Петров 12 2_дня
В combobox-ах получается:
Иванов 14 2_дня
Сидоров 12 3_дня
Петров 17 1_неделя
> Там будет в одном списке поля таблицы тройками
Так как же правильно?
Palladin (2008-01-31 15:50:00) [4]
> [12] Галинка © (31.01.08 15:44)
я имею ввиду вот так
> [8] Palladin © (31.01.08 12:29)
это раз, два автору уже все понравилось, видимо, что мой телепатор был ближе всех к истине... ну посмотрим...
Anatoly Podgoretsky (2008-01-31 15:48:00) [5]Приведи пример данных и результат.
Галинка (2008-01-31 15:44:00) [6]а разве в
S.T. (31.01.08 12:19) [7]
> Palladin © (31.01.08 12:09) [1]
Вы имеете ввиду так:
ADOQueryCB.SQL.Text := 'SELECT DISTINCT Otdelenie, Vtoroe FROM Pervaya'+
' WHERE Otdelenie IS NOT NULL ORDER BY 1';
.....................
DBComboBox.Items.Add(ADOQueryCB.Fields[0].asString);
DBComboBox.Items.Add(ADOQueryCB.Fields[1].asString);
не один и тот же комбо заполняется? Там будет в одном списке поля таблицы тройками.
ПыСы: а есть ли у комбо свойства DataSource и DisplayMember? Тогда просто назначить в них соотв. поля полученного набора.
Palladin (2008-01-31 14:37:00) [7]применим, входящий набор записей сокращаем...
Anatoly Podgoretsky (2008-01-31 14:36:00) [8]Боюсь, что все три поля независимы друг от друга, а в этом случае DISTINCT не применим, ерунда получится.
S.T. (2008-01-31 12:39:00) [9]> Palladin © (31.01.08 12:29) [8]
Спасибо!
Palladin (2008-01-31 12:29:00) [10]вместо
DBComboBox.Items.Add(ADOQueryCB.Fields[0].asString);
DBComboBox.Items.Add(ADOQueryCB.Fields[1].asString);
If DBComboBox.Items.IndexOf(ADOQueryCB.Fields[0].asString)=-1 Then DBComboBox.Items.Add(ADOQueryCB.Fields[0].asString);
If DBComboBox.Items.IndexOf(ADOQueryCB.Fields[1].asString)=-1 Then DBComboBox.Items.Add(ADOQueryCB.Fields[1].asString);
S.T. (2008-01-31 12:19:00) [11]
> Palladin © (31.01.08 12:09) [1]
Вы имеете ввиду так:
ADOQueryCB.SQL.Text := 'SELECT DISTINCT Otdelenie, VtoroeFROM Pervaya'+
' WHERE Otdelenie IS NOT NULL ORDER BY 1';
.....................
DBComboBox.Items.Add(ADOQueryCB.Fields [0].asString);
DBComboBox.Items.Add(ADOQueryCB.Fields [1].asString);
Palladin (2008-01-31 12:19:00) [12]
> [4] Surok (31.01.08 12:16)
ну так и написать, все три поля, только с дистинктом
clickmaker (2008-01-31 12:17:00) [13]
> можно как-то, в этом запросе, заполнить сразу три DBComboBox-а
> (по трём колонкам той-же таблицы БД)?
а в чем сложность?
три .Add() друг за другом не написать?
Surok (2008-01-31 12:16:00) [14]> Palladin © (31.01.08 12:12) [3]
хотя, вру, дистинкт убирать не надо :)
Тгда как правильно построить запрос?
Palladin (2008-01-31 12:12:00) [15]хотя, вру, дистинкт убирать не надо :)
ketmar (2008-01-31 12:11:00) [16]можно. а нужно?
Palladin (2008-01-31 12:09:00) [17]убрать distinct из запроса
в запрос добавить все три поля
в цикле добавлять в нужный combobox только те значения которых у него еще нет