![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите!! У меня очень большая загвоздка! в Программе есть строка (TEdit) в ней содержится строка вида (анальг/амп/10). Необходимо составить запрос SQL для выборки данных с параметром поиска строки. Например если стоит / - это значит что слова могут стоять а в обратной последовательности.
Например: в строке анальг/амп/10 Это значит что должно быть несколько запросов, 1-вый запрос: анальг%амп%10 2-ой: 10%анальг%амп 3-ый: 10%амп%анальг 4-ый: анальг%10%амп и так далее. Помогите составить сначала процедуру составления последовательностей, а потом уже и запрос. Названия полей можете брать свои (это мало важно), я потом все буду переносить в свою программу. Если можно то не затягивайте с ответом, уж очень нужно! Заранее спасибо!! Андрей. |
|
#2
|
|||
|
|||
|
Надо разделить строку поиска на подстроки и задать их как отдельные параметры в запросе.
Код:
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
|
|||
|
|||
|
Огромное Вам спасибо, все заработало!!!!!!!!
Могу пускать проект в мир! Еще раз большое спасибо! |