Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
ВнизВозможно в одном запросе заполнить три DBComboBox-а? Найти похожие ветки
← →
S.T. (2008-01-31 12:04) [0]При открытии формы редактирования записи, заполняю 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 надо это проделывать?
← →
Palladin © (2008-01-31 12:09) [1]убрать distinct из запроса
в запрос добавить все три поля
в цикле добавлять в нужный combobox только те значения которых у него еще нет
← →
ketmar © (2008-01-31 12:11) [2]можно. а нужно?
← →
Palladin © (2008-01-31 12:12) [3]хотя, вру, дистинкт убирать не надо :)
← →
Surok (2008-01-31 12:16) [4]> Palladin © (31.01.08 12:12) [3]
хотя, вру, дистинкт убирать не надо :)
Тгда как правильно построить запрос?
← →
clickmaker © (2008-01-31 12:17) [5]
> можно как-то, в этом запросе, заполнить сразу три DBComboBox-а
> (по трём колонкам той-же таблицы БД)?
а в чем сложность?
три .Add() друг за другом не написать?
← →
Palladin © (2008-01-31 12:19) [6]
> [4] Surok (31.01.08 12:16)
ну так и написать, все три поля, только с дистинктом
← →
S.T. (2008-01-31 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);
← →
Palladin © (2008-01-31 12:29) [8]вместо
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:39) [9]> Palladin © (31.01.08 12:29) [8]
Спасибо!
← →
Anatoly Podgoretsky © (2008-01-31 14:36) [10]Боюсь, что все три поля независимы друг от друга, а в этом случае DISTINCT не применим, ерунда получится.
← →
Palladin © (2008-01-31 14:37) [11]применим, входящий набор записей сокращаем...
← →
Галинка © (2008-01-31 15:44) [12]а разве в
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? Тогда просто назначить в них соотв. поля полученного набора.
← →
Anatoly Podgoretsky © (2008-01-31 15:48) [13]Приведи пример данных и результат.
← →
Palladin © (2008-01-31 15:50) [14]
> [12] Галинка © (31.01.08 15:44)
я имею ввиду вот так
> [8] Palladin © (31.01.08 12:29)
это раз, два автору уже все понравилось, видимо, что мой телепатор был ближе всех к истине... ну посмотрим...
← →
S.T. (2008-02-02 21:47) [15]> не один и тот же комбо заполняется?
нет, их три!
> Приведи пример данных и результат.
Данные:
Иванов 14 2_дня
Сидоров 12 3_дня
Иванов 17 1_неделя
Петров 12 2_дня
В combobox-ах получается:
Иванов 14 2_дня
Сидоров 12 3_дня
Петров 17 1_неделя
> Там будет в одном списке поля таблицы тройками
Так как же правильно?
← →
Галинка © (2008-02-03 02:41) [16]
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);
← →
Johnmen © (2008-02-03 02:53) [17]
> S.T. (02.02.08 21:47) [15]
> > не один и тот же комбо заполняется?
нет, их три!
> Приведи пример данных и результат.
Данные:
Иванов 14 2_дня
Сидоров 12 3_дня
Иванов 17 1_неделя
Петров 12 2_дня
В combobox-ах получается:
Иванов 14 2_дня
Сидоров 12 3_дня
Петров 17 1_неделя
Чо за бред?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.062 c