Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ поиск по нескольким полям

Автор: 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) *

спасиба! работает =) и что я тупила так >_<


Огромное вам всем спасибо! Тоже долго голову ломал. Реальна тема.