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

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

фильтр по двум колонкам [D7, Paradox]


DIS ©   (2004-06-11 00:29:00) 

Подскажите, пожалуйста, как правильно написать SQL запрос. В этом запросе мне нужно делать фильтр по двум колонкам column1, column2. Загвоздка в том, что текст пишется в edit1 и соответственно edit2. Пробовал как в примере из help, но они не подходят, видимо нужно разобраться с колличеством запятых?

Query1.SQL.Text:='select * from phone WHERE column1  Like '+QuotedStr(''+Edit1.Text+'%')  and column2  Like '+QuotedStr(''+Edit2.Text+'%') ;


DIS   (2004-06-11 18:08:00) [1]

А ларчик просто открывался. Вобщем я написал так

procedure TForm2.Button3Click(Sender: TObject);
begin
Query1.close;
Query1.SQL.Clear;
Query1.sql.add('select column1, column2, column3');
Query1.sql.add(' FROM table');
Query1.sql.add('WHERE column1 like '''+Edit1.Text+'%'' and column2 like '''+Edit2.Text+'%'' and column3 like '''+Edit3.Text+'%''' );
Query1.Open;
end;


Mike Kouzmine   (2004-06-11 09:31:00) [2]

Для парадокса эффективнее будет сделать индекес, где два первых поля - те, по которым ты ищешь и делать SetRange. Если, конечно, это не первичный индекс.


hyper_omsk   (2004-06-11 07:44:00) [3]

Query1.sql.add('select * from phone where column1='+edit1.text+' and column2='+edit2.text');

Будет работать если поля не дата и не время
если дата нужно

Query1.sql.add('select * from phone where column1='''+edit1.text+''' and column2='''+edit2.text''');


Наверх

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