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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.09.2014, 09:39
АНЯ17 АНЯ17 вне форума
Прохожий
 
Регистрация: 16.08.2014
Сообщения: 22
Версия Delphi: delphi 7
Репутация: 10
По умолчанию Поиск по Like%

Как организовать поиск по 2 полям ??? при поддержка Like

Код:
var help1,help2: string;
begin
    help1:='%'+edit1.text+'%';
    help2:=quotedStr(help1);
  with q1 do
    begin
       close;
         sql.clear;
             sql.Add('select *from tes where fio like '+help2);
         open;
    end;

по одному 100% работает !!!
Изображения
Тип файла: jpg 2014-09-23_103112.jpg (13.1 Кбайт, 8 просмотров)
Ответить с цитированием
  #2  
Старый 23.09.2014, 11:45
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

а так

'select *from tes where ( fio like '+help2+') and (address like %moskow%)'
Ответить с цитированием
  #3  
Старый 24.09.2014, 08:15
АНЯ17 АНЯ17 вне форума
Прохожий
 
Регистрация: 16.08.2014
Сообщения: 22
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Код:
begin
   if (Length(Trim(edit5.text)) = 0)  and
         (Length(Trim(edit6.text)) = 0) then Exit;
  with DataM.adsQ do
    begin
       close;
         sql.clear;
         sql.Add('select *from bemor  where ');
//         if (Length(Trim(edit5.text))>0 then
             sql.Add(' fbem like ' +  quotedStr('%'+Trim(edit5.text)+'%') );
//         if ((Length(Trim(edit5.text))>0) and (Length(Trim(edit6.text))>0 then
            sql.Add(' and ');
//         if (Length(Trim(edit6.text))>0 then
             sql.Add(' ibem like ' +  quotedStr('%'+Trim(edit6.text)+'%') );
         open;
    end;


работает без переменных 100% оба полям
Ответить с цитированием
  #4  
Старый 24.09.2014, 09:47
kaakaa
 
Сообщения: n/a
По умолчанию

Возможно АНЕ17 нужно использовать операцию логического ИЛИ, просто она никак не может это выразить по русски?

select *from MYTABLE where field1 like '+help1+' OR field2 like '+help2'

Последний раз редактировалось kaakaa, 25.09.2014 в 11:27.
Ответить с цитированием
  #5  
Старый 26.09.2014, 20:14
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Цитата:
Сообщение от kaakaa
Возможно АНЕ17 нужно использовать операцию логического ИЛИ, просто она никак не может это выразить по русски?

select *from MYTABLE where field1 like '+help1+' OR field2 like '+help2'
судя по скрину всетаки нужен AND поиск человека через OR весьма сомнителен.

Код:
var s,s2:string;
begin
s:='';
s2:='';
if length(edit1.txt)>0 then s:=' and fam like '+quotedstr(s+'%');//Фамилия
if length(edit2.txt)>0 then s2:=' and im like '+quotedstr(s2+'%');//Имя
sql.text:=' SELECT * FROM bemor  where FAM<>  '+quptedstr('')+s+s2;
sql.active:=true;
end;
Это альтернатива ее кода.

А насчет ее выражения я уже давно западозрил что она скорей всего не из России и пользуется нечто вроде промта...уж слишком корявый русский язык у её))) "работает без переменных 100% оба полям" я бы так точно никогда не написал =))

Последний раз редактировалось Heneken, 26.09.2014 в 20:33.
Ответить с цитированием
  #6  
Старый 26.09.2014, 20:15
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Цитата:
Сообщение от АНЯ17
Код:
begin
   if (Length(Trim(edit5.text)) = 0)  and
         (Length(Trim(edit6.text)) = 0) then Exit;
  with DataM.adsQ do
    begin
       close;
         sql.clear;
         sql.Add('select *from bemor  where ');
//         if (Length(Trim(edit5.text))>0 then
             sql.Add(' fbem like ' +  quotedStr('%'+Trim(edit5.text)+'%') );
//         if ((Length(Trim(edit5.text))>0) and (Length(Trim(edit6.text))>0 then
            sql.Add(' and ');
//         if (Length(Trim(edit6.text))>0 then
             sql.Add(' ibem like ' +  quotedStr('%'+Trim(edit6.text)+'%') );
         open;
    end;


работает без переменных 100% оба полям
Исходники то помогли разобраться?
Ответить с цитированием
  #7  
Старый 03.10.2014, 15:00
АНЯ17 АНЯ17 вне форума
Прохожий
 
Регистрация: 16.08.2014
Сообщения: 22
Версия Delphi: delphi 7
Репутация: 10
Радость Да пасибки

помагла а как на счет Delphi XE6 ?? она работает с БД ADS server 11 ?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter