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

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

Почему не фильтруется ADOQuery?


Страницы:   1 2 3 4 5 6

andrewtitoff ©   (2009-11-08 22:20:00) 

Выдает ошибку 'Не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру' в строке Form1.ADOQuery1.Filtered:=true;

procedure TForm2.ComboBox1Change(Sender: TObject);
begin
Form1.ADOTable4.Filter:='STREET = '''+ComboBox1.Text+'''';
Form1.ADOTable4.Filtered:=true;
ComboBox2.Items.Clear;
Form1.ADOQuery1.SQL.Text := 'select STREET and HOUSE from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
Form1.ADOQuery1.Next;
end;
Form1.ADOQuery1.Filter:='street = '''+ComboBox1.Text+'''';
Form1.ADOQuery1.Filtered:=true;
Form1.ADOQuery1.SQL.Text := 'select distinct HOUSE from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
Form2.ComboBox2.Items.Add(Form1.ADOQuery1.Fields[0].AsString);
Form1.ADOQuery1.Next;
end;
end;


kyn66   (2009-11-09 09:50:00) [81]


> andrewtitoff ©   (09.11.09 01:24) [25]
> тока вот задача в том - что бы когда
> в первом комбобоксе будет выбрана улица - в остальных комбобоксах
> оказались значения полей которые сожержатся только в записях
> с этой улицей и естественно без повторов....


Задействовать TDBLookupCombo. Однако без отбора SQl по ComboBox.onChange всеравно не обойтись. Делал похожую задачу по телефонной БД.


Германн   (2009-11-09 02:15:00) [82]


> andrewtitoff ©   (09.11.09 02:03) [33]
>
>
> > Германн ©   (09.11.09 01:51) [31]
> > > В общем обьясняю подробно:Мой телепатор сработал правильно.
>
> >  :)
>
> Так а сделать то можно одним запросом или как говорит
>
> > Омлет ©   (09.11.09 01:54) [32]
> > > Как тогда при выборе номера дома заполнить корпуса и
> парадные
> > > одновременно?Два запроса. Один за другим.
>
> Делать несколькими запросами?
>
> Просто с одной стороны я уже сам склоняюсь к нескольким
> запросам, но просто уже можно сказать дело принципа - узнать
> можно ли это одним запросом сделать или нет?...
>

Могу только сказать, что одним запросом не обойдешься.
И ещё подсказка. "Вложенность структур".


sniknik   (2009-11-09 02:13:00) [83]

> можно ли это одним запросом сделать или нет?...
а разве я тебе тут не написал вариант? а в прошлой ветке тебе про множественные рекордсеты не говорили?
принципиальный ты наш...


Омлет   (2009-11-09 02:11:00) [84]

> можно ли это одним запросом сделать или нет?...

Можно - как сказал sniknik: union all + разделители-константы.
Но тогда тебе придется это разбират на стороне клиента, отделять корпуса от квартир, квартиры от парадных и т.д. Плюс озаботится тем, чтобы выбранные константы-разделители никогда не попали в базу.


sniknik   (2009-11-09 02:10:00) [85]

Омлет ©   (09.11.09 01:54) [32]
> Два запроса. Один за другим.
блинЮ да я ему даже наглядный пример показвал
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1257618815&n=18
пост [32]

из которого единственное что он понял, что его типа пытаются оскорбить...


andrewtitoff   (2009-11-09 02:03:00) [86]


> Германн ©   (09.11.09 01:51) [31]
> > В общем обьясняю подробно:Мой телепатор сработал правильно.
>  :)

Так а сделать то можно одним запросом или как говорит

> Омлет ©   (09.11.09 01:54) [32]
> > Как тогда при выборе номера дома заполнить корпуса и парадные
> > одновременно?Два запроса. Один за другим.

Делать несколькими запросами?

Просто с одной стороны я уже сам склоняюсь к нескольким запросам, но просто уже можно сказать дело принципа - узнать можно ли это одним запросом сделать или нет?...


Омлет   (2009-11-09 01:54:00) [87]

> Как тогда при выборе номера дома заполнить корпуса и парадные
> одновременно?

Два запроса. Один за другим.


Германн   (2009-11-09 01:51:00) [88]


> В общем обьясняю подробно:

Мой телепатор сработал правильно. :)


andrewtitoff   (2009-11-09 01:45:00) [89]


> Омлет ©   (09.11.09 01:40) [29]
> > [28] andrewtitoff ©   (09.11.09 01:36)Не, ну понятно,
> что пока не выбрана парадная, выводятся все квартиры выбранного
> дома.Но, пока дом не выбран, поля квартиры, парадной и этажа
> должны быть задисаблены.Выбрали дом - заполняем эти поля.
>

Ну в принципе логично, только проблемы то не решает, все равно у нас получается два поля....
Как тогда при выборе номера дома заполнить корпуса и парадные одновременно?


Омлет   (2009-11-09 01:40:00) [90]

> [28] andrewtitoff ©   (09.11.09 01:36)

Не, ну понятно, что пока не выбрана парадная, выводятся все квартиры выбранного дома.
Но, пока дом не выбран, поля квартиры, парадной и этажа должны быть задисаблены.
Выбрали дом - заполняем эти поля.


andrewtitoff   (2009-11-09 01:36:00) [91]


> Омлет ©   (09.11.09 01:29) [26]
> > [25] andrewtitoff ©   (09.11.09 01:24)Ну так сделай на
> каждый комбобокс свой запрос. Зачем изгаляться?И вообще,
>  по-моему, лучше делать жестко зависимые поля (см. [21])
> по иерархии данных.Или хочется выбрать все дома, в которых
> есть 66 квартира на улице Вязов?

Ну может и такое быть, а во вторых корпуса и порадные могут быть, а могут и не быть например Ветеранов д5 п3 и Ветеранов д5 к2 т.е. получается что в первом случае после выбора дома нужно сразу знать номера парадных, а во втором случае они ненужны...


andrewtitoff   (2009-11-09 01:30:00) [92]


> Омлет ©   (09.11.09 01:17) [21]
> > [20] sniknik ©   (09.11.09 01:11)> а дома от подъездов
> разделяются признаком разделителем Ужас. ИМХО, не надо подгатавливать
> сразу все данные, типа список всех уникальных улиц, список
> всех уникальных номеров домов и т.д. Надо делать так, что
> пока не выбрана улица, поле с номером дома неактивно; пока
> не выбраны улица и дом, поле со списком квартир неактивно
> и т.д. Это обычные зависимые селекты, с простыми, как пробка,
>  запросами.

Ну я как раз подумывал над этим, но хотелось бы более универсальную выборку т.к. случаи разные бывают.., а тем более после выбора дома все равно придется и корпус и парадную делать т.к. где то они есть, а где-то нет...


Омлет   (2009-11-09 01:29:00) [93]

> [25] andrewtitoff ©   (09.11.09 01:24)

Ну так сделай на каждый комбобокс свой запрос. Зачем изгаляться?
И вообще, по-моему, лучше делать жестко зависимые поля (см. [21]) по иерархии данных.
Или хочется выбрать все дома, в которых есть 66 квартира на улице Вязов?


andrewtitoff   (2009-11-09 01:24:00) [94]

2 All
Бррр..., по молчали -молчали - а то выдали... =))))

В общем обьясняю подробно:
Имеется таблица, где поле номер 1 - улица, 2- дом, 3-корпус, 4 - парадная, для каждого из полей есть свой комбобокс - куда заносятся значения соответствующего столбца без повторов, тока вот задача в том - что бы когда в первом комбобоксе будет выбрана улица - в остальных комбобоксах оказались значения полей которые сожержатся только в записях с этой улицей и естественно без повторов....


Германн   (2009-11-09 01:22:00) [95]


> блин, по моему, то что я сейчас сделаю так это - даю ответ
> на вопрос "как же сделать Y"

Именно так.
Только имхо я более прав в понимании Y. :)
Автору нужен НД, (в котором будут уникальные номера домов по заданной улице, (в котором будут уникальные номера корпусов в этих домах, (в котором будут уникальные номера квартир))).


Омлет   (2009-11-09 01:22:00) [96]

> 3 запроса скрепить union-ами...

union all-ами )))


Омлет   (2009-11-09 01:20:00) [97]

Хоть бы никогда andrewtitoff не пришлось работать с КЛАДРом, а то запарит вопросами ))


Омлет   (2009-11-09 01:17:00) [98]

> [20] sniknik ©   (09.11.09 01:11)
> а дома от подъездов разделяются признаком разделителем

Ужас. ИМХО, не надо подгатавливать сразу все данные, типа список всех уникальных улиц, список всех уникальных номеров домов и т.д. Надо делать так, что пока не выбрана улица, поле с номером дома неактивно; пока не выбраны улица и дом, поле со списком квартир неактивно и т.д. Это обычные зависимые селекты, с простыми, как пробка, запросами.


sniknik   (2009-11-09 01:11:00) [99]

> А что сделать одним запросом? Объясни.
ИМХО, он подготавливает данные для фильтрации (???!!!).

> если в скрепляемых выборках одинаковый набор полей.
неважно, главное одинаковый тип (или конвертируемый к одинаковому) а там у него строки.
а дома от подъездов разделяются признаком разделителем (простое поле константа в каждом запросе с разным значением)


Омлет   (2009-11-09 01:05:00) [100]

> запроса скрепить union-ами...

Скрепить можно только, если в скрепляемых выборках одинаковый набор полей.
А ему, похоже, надо скрепить список домов со списком подъездов и списком квартир - полная билиберда.


Страницы:   1 2 3 4 5 6

Наверх

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