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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.01.2009, 15:37
andrey.vadimovich andrey.vadimovich вне форума
Прохожий
 
Регистрация: 10.12.2008
Сообщения: 15
Репутация: 10
Стрелка Помогите в составлении запроса!

Помогите!! У меня очень большая загвоздка! в Программе есть строка (TEdit) в ней содержится строка вида (анальг/амп/10). Необходимо составить запрос SQL для выборки данных с параметром поиска строки. Например если стоит / - это значит что слова могут стоять а в обратной последовательности.
Например: в строке анальг/амп/10
Это значит что должно быть несколько запросов, 1-вый запрос: анальг%амп%10
2-ой: 10%анальг%амп
3-ый: 10%амп%анальг
4-ый: анальг%10%амп
и так далее.

Помогите составить сначала процедуру составления последовательностей, а потом уже и запрос.
Названия полей можете брать свои (это мало важно), я потом все буду переносить в свою программу.

Если можно то не затягивайте с ответом, уж очень нужно!

Заранее спасибо!! Андрей.
Ответить с цитированием
  #2  
Старый 04.01.2009, 16:03
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Надо разделить строку поиска на подстроки и задать их как отдельные параметры в запросе.

Код:
function MakeQuery(AText : String) : String;
var
  I : Integer;
  AParams : TStringList;
begin
  AParams := TStringList.Create;
  While Pos('/',AText) > 0 Do
    Begin
      AParams.Add(Copy(AText,1,Pos('/',AText)-1));
      AText := Copy(AText,Pos('/',AText)+1,Length(AText)-Pos('/',AText)+1);
    End;
  If AText <> '' Then AParams.Add(AText);

  Result := 'SELECT * FROM Table WHERE';
  For I := 0 To APArams.Count-1 Do
    Begin
      If I <> 0 Then Result := Result + ' AND';
      Result := Result + ' field1 LIKE ''' + AParams[i] + '''%';
    End;

  AParams.Free; 
end;

в общем, как-то так.
Ответить с цитированием
  #3  
Старый 04.01.2009, 23:33
andrey.vadimovich andrey.vadimovich вне форума
Прохожий
 
Регистрация: 10.12.2008
Сообщения: 15
Репутация: 10
Хорошо

Огромное Вам спасибо, все заработало!!!!!!!!
Могу пускать проект в мир!
Еще раз большое спасибо!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter