Форум «Всё о Паскале» _ Делфи _ поиск по нескольким полям
Автор: corazon 19.06.2007 13:27
в нете везде по этоу вопросу лежит:
Код
keyfields:='name;name_1;n_dom;n_kw'; keyvalues:=VarArrayOf([combobox1.Text, combobox2.Text, edit2.Text, edit3.text]); if dmod.qrfiz.Locate(keyfields,keyvalues,[])=false then dmod.qrfiz.Locate('id',id1,[]);
как объявить keyfields и keyvalues? и что делать если я не знаю сколько полей для поиска у меня будет заполнено..
Автор: мисс_граффити 19.06.2007 13:32
у тебя именно БД или ты так называешь типизированные файлы?
Автор: corazon 19.06.2007 13:39
у меня именно БД там получается DataModule2.Table1.Locate....
Автор: volvo 19.06.2007 14:34
Цитата
как объявить keyfields и keyvalues?
keyfields: string; keyvalues: variant;
если ты об этом...
Автор: corazon 19.06.2007 14:49
да это, спасибо... но у меня это все равно не сработало =(
не знаю как сделать... у меня есть пять полей (улица, площадь, номер этажа, кол-во этажей и стоимость), могут заполнить только некоторые из них и мне нада сделать поиск только по заполненым полям.. пыталась с query сделать..
Код
Query1.SQL.Clear; Query1.Active:=false; Query1.SQL.Add('select * from sprav'); Query1.SQL.Add('where Opisanie like "%" '); if Edit2.Text<>'' then Query1.SQL.Add('AND Ulica="'+edit2.text+'"'); if Edit3.Text<>'' then Query1.SQL.Add('AND Ploshad="'+edit3.text+'"'); if Edit4.Text<>'' then Query1.SQL.Add('AND Etaz='+edit4.text); if Edit5.Text<>'' then Query1.SQL.Add('AND Kol_et="'+edit5.text+'"'); if Edit5.Text<>'' then Query1.SQL.Add('AND Cena="'+edit6.text+'"'); Query1.SQL.Add(';'); Query1.ExecSQL; Query1.Active:=true;
тож не помогло.. потому что поля в таблице числа,а ищу строку =( что можно исправить?
Автор: volvo 19.06.2007 14:59
Там, где значения строчные кавычки оставь, а там, где числовые - убери...
Автор: corazon 19.06.2007 15:15
спасиба! работает =) и что я тупила так >_<
Автор: Lexp1 30.06.2007 12:56
Цитата(corazon @ 19.06.2007 16:15)
спасиба! работает =) и что я тупила так >_<
Огромное вам всем спасибо! Тоже долго голову ломал. Реальна тема.