![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не фильтруется ADOQuery?
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;
Andrewtitoff (2009-11-09 14:20:00) [61]А не может информация искажаться из - перетаскивания в комбобокс и обратно?
Ну скажем в таблице ячейка равна Nil, а после манипуляций с комбобоксом возвращается в каком нибудь другом виде?
Сергей М. (2009-11-09 14:19:00) [62]
> я же из комбобокса выбираю
Да по барабану откуда ты выбираешь.
Если "пустое" по факту есть NULL, значит и условие отбора д.б.Is NULL, а не=""
Andrewtitoff (2009-11-09 14:16:00) [63]
> Сергей М. © (09.11.09 14:11) [54]
> > где поле корпус пустое?SELECT ... FROM .. WHERE (где)
> MyField (поле корпус) IS NULL (пустое)
Не совсем, я же из комбобокса выбираю, т.е. запрос выглядит так:
Form1.ADOQuery1.SQL.Text := 'select distinct PARNUM from lift WHERE (STREET = '''+ComboBox1.Text+''') and (HOUSE = '''+ComboBox2.Text+''') and (CORP = '''+ComboBox3.Text+''')';
Andrewtitoff (2009-11-09 14:15:00) [64]
> sniknik © (09.11.09 14:09) [53]
> > нужны именно те записи - где поле корпус пустое?WHERE
> корпус = ''илиWHERE корпус IS NULLв зависимости от того,
> что у тебя там.
Ну так я сейчас посмотред про помощи Шовмессаге - что получается у меня в фильтре - как раз " корпус = '' " и получается, а таблица с таким фильтром пустой остается....
Сергей М. (2009-11-09 14:11:00) [65]
> где поле корпус пустое?
SELECT ... FROM .. WHERE(где)MyField(поле корпус)IS NULL(пустое)
sniknik (2009-11-09 14:09:00) [66]> нужны именно те записи - где поле корпус пустое?
WHERE корпус = ''
или
WHERE корпус IS NULL
в зависимости от того, что у тебя там.
Andrewtitoff (2009-11-09 14:05:00) [67]А как быть с пустыми полями в таблице?
скажем у меня есть записи
Ветеранов д3 к2 п1
Ветеранов д3 к2 п2
Ветеранов д3 к2 п3
Ветеранов д3 п1
Ветеранов д3 п2
Ветеранов д3 п3
Как в запросе и в сортировке указать что мне нужны именно те записи - где поле корпус пустое?, т.к. при выборе из комбобокса загруженного ранее туда при помоши запроса пустого значения(я так понимаю что оно не пустое - а там неотображаемый символ какой -то) и результат запроса и фильтра АДОТайбла оказываются пустыми... =(((
kyn66 (2009-11-09 12:14:00) [68]
> Anatoly Podgoretsky © (09.11.09 11:54) [50]
No comments...
Anatoly Podgoretsky (2009-11-09 11:54:00) [69]> kyn66 (09.11.2009 11:44:47) [47]
Как раз в песочнице копаемся.
sniknik (2009-11-09 11:49:00) [70]> А этот бред к чему сказан? Мы тут вроде не в песочнице общей играемся...
это не бред, и не для песочницы, это как раз очень серьезно. к любой проблеме нужно подходить так как будто ты сам накосячил, или не знаешь чего то, а не кивать на "кривые компоненты/винду/и т.д.". это здравый подход, и оправдывает себя в 97% случаев...
а вот обижаться на непонятый совет, это по детски...
sniknik (2009-11-09 11:45:00) [71]> когда и фильтрует и добавляется без проблем
насчет фильтра... в ADO мастер детайл можно настроить двумя вариантами, первый с применением запросов, второй фильтрацией контента на клиенте...
ну думаю дальше объяснять не надо, если фильтрация уже используется, то с использованием ее еще раз возможны проблемы...
ну и само собой у "противников запросов" (ака приверженцев старой BDE-шной идеологии) проблемы как из рога изобилия.
kyn66 (2009-11-09 11:44:00) [72]
> Anatoly Podgoretsky © (09.11.09 11:34) [46]
> > kyn66 (09.11.2009 11:30:45) [45]
Не помню уже точно какая была ситуация (давно было), но проблемы какие то были.
> может тебе стоит посмотреть в свою сторону, а не искать
> врагов на стороне?
А этот бред к чему сказан? Мы тут вроде не в песочнице общей играемся...
Anatoly Podgoretsky (2009-11-09 11:34:00) [73]> kyn66 (09.11.2009 11:30:45) [45]
Какой еще наезд, когда и фильтрует и добавляется без проблем, может тебе стоит посмотреть в свою сторону, а не искать врагов на стороне?
kyn66 (2009-11-09 11:30:00) [74]
Anatoly Podgoretsky © (09.11.09 11:09) [42]
> А надо в нужных, а не в исключительных и никаких проблем
> с добавлением нет
Те же ... только в профиль. Зачем по пустому придирки клеить. И так было понятно об чем речь. ВАс, уважаемый Anatoly Podgoretsky хлебом не корми, дай на кого наехать...
Anatoly Podgoretsky (2009-11-09 11:22:00) [75]> sniknik (09.11.2009 11:10:43) [43]
Если не видно, то нет никаких SQL запрос по логике.
sniknik (2009-11-09 11:10:00) [76]> Не вопрос, можно и так.
вопрос не в том можно или нет, или что предпочесть при разработке, вопрос обошелся я в этом случае без "отбора SQl" или нет?
Anatoly Podgoretsky (2009-11-09 11:09:00) [77]> kyn66 (09.11.2009 10:26:40) [40]
А надо в нужных, а не в исключительных и никаких проблем с добавлением нет
Sergey13 (2009-11-09 10:46:00) [78]> [40] kyn66 © (09.11.09 10:26)
> если за ключом клавной не уследить.
А как ты за ним следишь?
ЗЫ: представляю какой бардак у тебя в данных.
kyn66 (2009-11-09 10:26:00) [79]
> sniknik © (09.11.09 10:06) [39]
> > Однако без отбора SQl по ComboBox.onChange всеравно не
> обойтись.да ну? а если я настрою мастер детайл,
Не вопрос, можно и так. Лично я мастер-детайл сейчас стораюсь применять в исключительных случаях. Есть проблемы с добавлением записей в зависимые таблицы, если за ключом клавной не уследить.
sniknik (2009-11-09 10:06:00) [80]> Однако без отбора SQl по ComboBox.onChange всеравно не обойтись.
да ну? а если я настрою мастер детайл, и запросы оно будет само "унутрях" формировать, не привлекая меня, это будет считаться, что обошелся без них?
в конце концов ADOTable тоже запрос посылает, но используют же его те кто хочет обойтись без знаний sql. и считают что обходится без запросов.
p.s. хотя конечно настраивать мастер детайл по строковым полям как то дико...