Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2015, 15:07
yuoras yuoras вне форума
Прохожий
 
Регистрация: 11.03.2014
Сообщения: 48
Версия Delphi: Delphi 7(4.453)
Репутация: 10
По умолчанию Поиск по одному и нескольким значениям в БД MSSQL 2005

Продолжение темы http://www.delphisources.ru/forum/sh...ad.php?t=25828
Ребята ,помогите добить запрос.
#22 сообщении запрос работает только при указании одного из столбцов.

Как мне расширить поиск?.
То есть ,сделать поиск более точным, указать и "street" и "kvart"

Заранее благодарен!!
Ответить с цитированием
  #2  
Старый 23.05.2015, 22:03
sailen sailen вне форума
Прохожий
 
Регистрация: 27.02.2013
Сообщения: 19
Репутация: 10
По умолчанию

Код:
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  
Старый 24.05.2015, 12:11
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо.
К сожалению , не работает , даже не работает поиск по одному значению.
Вот полный проект https://yadi.sk/d/Q7nkGR4dgqDKH

Последний раз редактировалось starcon, 24.05.2015 в 12:53.
Ответить с цитированием
  #4  
Старый 24.05.2015, 12:15
sailen sailen вне форума
Прохожий
 
Регистрация: 27.02.2013
Сообщения: 19
Репутация: 10
По умолчанию

кинь исходник может помогу
Ответить с цитированием
  #5  
Старый 24.05.2015, 13:14
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ссылка в #3 сообщении
Ответить с цитированием
  #6  
Старый 24.05.2015, 14:07
sailen sailen вне форума
Прохожий
 
Регистрация: 27.02.2013
Сообщения: 19
Репутация: 10
По умолчанию

Пробуй должно работать
Вложения
Тип файла: rar Поиск.rar (1.45 Мбайт, 4 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо sailen за это полезное сообщение:
starcon (24.05.2015)
  #7  
Старый 24.05.2015, 15:24
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо.
В Вашем exe , так как и раньше было , поиск только по одному из полей.
Мне нужно , что бы было два и более , ну для более точного поиска
Когда я открываю проект у себя
"Ругается на неправильный синтаксис около %".

Кроме этого нашёл ошибку
Код:
     *.qusers.Active:= True;
     *.qusers.First;

Последний раз редактировалось starcon, 24.05.2015 в 15:37.
Ответить с цитированием
  #8  
Старый 24.05.2015, 15:58
sailen sailen вне форума
Прохожий
 
Регистрация: 27.02.2013
Сообщения: 19
Репутация: 10
По умолчанию

пишы сюда помогу
https://vk.com/id9494837
Ответить с цитированием
  #9  
Старый 24.05.2015, 17:04
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от sailen
пишы сюда, помогу
Мда…
______________
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #10  
Старый 25.05.2015, 19:01
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Вопрос открыт.
Пока не одолели моей проблемы.

Последний раз редактировалось starcon, 25.05.2015 в 19:10.
Ответить с цитированием
  #11  
Старый 25.05.2015, 22:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да нет тут проблемы, только чьи то кривые руки.
Даже твой исхожник лень смотреть. Ну сделай на 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);// если надо что бы начиналось с подстроки
Далее просто возвращаешь значение, накопленное в Result.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter