![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Продолжение темы http://www.delphisources.ru/forum/sh...ad.php?t=25828
Ребята ,помогите добить запрос. #22 сообщении запрос работает только при указании одного из столбцов. Как мне расширить поиск?. То есть ,сделать поиск более точным, указать и "street" и "kvart" Заранее благодарен!! |
|
#2
|
|||
|
|||
|
Код:
procedure form1.BitBtn1Click(Sender: TObject);
begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT *');
adoquery1.SQL.Add('FROM ТАБЛИЦА');
if (Length(Edit1.Text) > 0) or
(Length(Edit2.Text) > 0) then
then
begin
adoquery1.SQL.Add('where street LIKE'''+Edit1.Text+'''AND');
adoquery1.SQL.Add('kvartl LIKE' + #39 + Edit2.Text + '%' + #39);
adoquery1.Active:= true;
end
else
begin
adoquery1.Active:= True;
adoquery1.First;
end;
end;Последний раз редактировалось Admin, 24.05.2015 в 13:34. |
|
#3
|
|||
|
|||
|
Спасибо.
К сожалению , не работает , даже не работает поиск по одному значению. Вот полный проект https://yadi.sk/d/Q7nkGR4dgqDKH Последний раз редактировалось starcon, 24.05.2015 в 12:53. |
|
#4
|
|||
|
|||
|
кинь исходник может помогу
|
|
#5
|
|||
|
|||
|
Ссылка в #3 сообщении
|
|
#6
|
|||
|
|||
|
Пробуй должно работать
|
| Этот пользователь сказал Спасибо sailen за это полезное сообщение: | ||
starcon (24.05.2015)
| ||
|
#7
|
|||
|
|||
|
Спасибо.
В Вашем exe , так как и раньше было , поиск только по одному из полей. Мне нужно , что бы было два и более , ну для более точного поиска Когда я открываю проект у себя "Ругается на неправильный синтаксис около %". Кроме этого нашёл ошибку Код:
*.qusers.Active:= True;
*.qusers.First;Последний раз редактировалось starcon, 24.05.2015 в 15:37. |
|
#8
|
|||
|
|||
|
пишы сюда помогу
https://vk.com/id9494837 |
|
#9
|
||||
|
||||
|
Цитата:
______________ |
|
#10
|
|||
|
|||
|
Вопрос открыт.
Пока не одолели моей проблемы. Последний раз редактировалось starcon, 25.05.2015 в 19:10. |
|
#11
|
|||
|
|||
|
Да нет тут проблемы, только чьи то кривые руки.
Даже твой исхожник лень смотреть. Ну сделай на OnFilterRecord прямо в динамике. Кладешь n Edit'ов (в данном примере - 4) на, например, ToolBar. Каждый Edit отвечает за фильтрацию по своему полю (если все фильрты по одному полю, то чуть-чуть по другому надо логику прописать, но принцип тот же самый). Далее в OnFilterRecord соотв. компонента делаем примерно так (OR): Код:
var
Result : Boolean;
begin
Result := False;
If Edit1.Text <> '' Then Result := Result Or query.FieldByName('Field1').AsString = Edit1.Text; // если надо полное совпадение
If Edit2.Text <> '' Then Result := Result Or (AnsiCompareText(query.FieldByName('Field2').AsString,Edit2.Text)=0); // если надо совпадение без учета регистра
If Edit3.Text <> '' Then Result := Result Or (Pos(Edit3.Text,query.FieldByName('Field3').AsString) > 0);// если надо точное наличие подстроки в любом месте
If Edit4.Text <> '' Then Result := Result Or (Pos(Edit4.Text,query.FieldByName('Field4').AsString) = 1);// если надо что бы начиналось с подстроки |