Показать сообщение отдельно
  #10  
Старый 30.09.2012, 02:53
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Evgen_Balbes
а такой вопрос (для общего развития): если у меня на форме 2 таблицы BDGrid с одинаковыми полями [familiya] ,можно искать запись сразу в двух, при вводе данных в Edit1, используя вот такую конструкцию ?
Код:
procedure TForm2.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) > 0 then
begin
ADOQuery1.Filtered:=false;
ADOQuery2.Filtered:=false;
ADOQuery1.Filter:='[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
ADOQuery2.Filter:='[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
ADOQuery1.Filtered:=true;
ADOQuery2.Filtered:=true;
end
else ADOQuery1.Filtered:=false;
     ADOQuery2.Filtered:=false;
end;
или это просто "ересь" студента
Не вижу причин чтобы это не работало (не считая конечно же того, что содержимое else тоже нужно заключать в begin...end). И даже не обязательно чтобы в этих двух таблицах были одинаковыми имена полей по которым производится фильтрация.
А ещё эту конструкцию можно упростить как минимум таким образом:
Код:
procedure TForm2.Edit1Change(Sender: TObject);
begin
  ADOQuery1.Filtered := False;
  ADOQuery2.Filtered := False;

  if Edit1.Text <> '' then
  begin
    ADOQuery1.Filter := '[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
    ADOQuery2.Filter := '[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
    ADOQuery1.Filtered := True;
    ADOQuery2.Filtered := True;
  end;
end;
Ответить с цитированием