Показать сообщение отдельно
  #7  
Старый 07.12.2010, 10:39
Аватар для th_bav
th_bav th_bav вне форума
Новичок
 
Регистрация: 02.12.2010
Сообщения: 74
Репутация: 10
По умолчанию

Решил новую тему не создавать, а продолжить в этой так как проблема одна...
Суть вопроса такова...
Имееться БД которая состоит из колонок Телефон, ФИО и т.п. .......), необходимо искать информацию по нескольким параметрам таким как Telefon, FIO и т.п......
проблема заключаеться в том, что за ранее не известно заполнено ли это поле или нет в колонке....., а у меня SQL ищет только по заполненым полям:
telefon fio
223 -15 Иванов
223-17 Сидоров
223-76
215-44
Т.е запрос выдаст мне только те телефоны и фамилии у которых все поля заполнены, а номера 215-44 и 215-76 проигнорирует так как у них нет фамилий
Мне кажеться что запрос должен меняться в зависимости от того какие поля заполнены. Я догодался только до 2 вариантов
1)Изначально заложить в программу все варианты запросов,но с таким большим количеством полей это очень неудобно., поэтому он был исключен.
2) Использовать промежуточное поле Edit, в зависимость от того введено чтонибудь в поле поиска или нет создать для промежуточного поля условие:
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
...	if Edit1.Text<>'' then Edit101.Text:=Edit1.Text + '%' ;
...	                             if Edit1.Text='' then Edit101.Text:=??? ;
...	if Edit2.Text<>'' then Edit102.Text:= Edit2.Text + '%';
...	if Edit2.Text='' then Edit102.Text:=???;
...	и т.п.
...	begin
...		Form1QueryCrosse.Active:=false;
...		Form1QueryCrosse.SQL.Clear;
...		Form1QueryCrosse.SQL.Add('SELECT *');
...		Form1QueryCrosse.SQL.Add('FROM Crosse');
...		Form1QueryCrosse.SQL.Add('WHERE telefon LIKE '''+Edit101.Text+''' AND grom LIKE '''+Edit102.Text+'''');
...		Form1QueryCrosse.Active:=true;
...	end;
end;
end.
Admin: Итак, санкции последовали, для начала 3-дневный бан. А пока читай про оформление кода...

Проблема в том, что мне написать вместо ???, был вариант использовать Edit101.Text:='IS NOT NULL AND IS NULL'
но должного результата это не принесло
Как поступить???? или я совсем не в ту сторону иду и есть другой проверенный способ??? в книжках порылся, там честно говоря сложнее одного поля запроса не нашел....
Есть мысль использовать Form1QueryCrosse.SQL.Add(Memo1.Text);
А текст в нем будет формироваться исходя из условий заполнения поля....
Осталось только научиться))))
P.S. почему то не могу сдвинуть текст для наглядности, поэтому поставил точки
Изображения
Тип файла: jpg Безымянный.JPG (18.3 Кбайт, 3 просмотров)
Ответить с цитированием