|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Поиск SQL запосом и отображение в dbgrid
поиск нужно что бы осуществлялся по Одному ИЛИ не стольким полям
Подскажите как обойти проблему, если хоть одно поле в строке оказывается пустое т.е (Null) , то строка выбывает из поиска Если можно подскажите на примере одного поля или Как переконструировать весь запрос.. Код:
procedure TMform.Button1Click(Sender: TObject); begin //Осуществляем поиск ADOQuery1.Close; {деактивируем запрос в качестве одной из мер предосторожности} ADOQuery1.SQL.Clear; {стираем предыдущий запрос} ADOQuery1.SQL.Add('select КЛ, ФИО, Оборудование, Телефон, SN, [Дата поступления], [Дата ремонта]') ; ADOQuery1.SQL.Add('from Клиент'); ADOQuery1.SQL.Add('where ((КЛ LIKE ''%'+Edit1.Text+'%'') AND (ФИО LIKE ''%'+Edit2.Text+'%'') AND (Оборудование LIKE ''%'+Edit4.Text+'%'') AND (Телефон LIKE ''%'+Edit3.Text+'%'') )'); ADOQuery1.Open; {выполняем запрос} ADOQuery1.Active:=true; DataSource1.DataSet:=ADOQuery1; DbGrid1.DataSource:=DataSource1; end; |
#2
|
|||
|
|||
Решение найдено
Код:
procedure TMform.Button1Click(Sender: TObject); begin //Осуществляем поиск ADOQuery1.Close; {деактивируем запрос в качестве одной из мер предосторожности} ADOQuery1.SQL.Clear; {стираем предыдущий запрос} ADOQuery1.SQL.Add('select КЛ, ФИО, Оборудование, Телефон, SN, [Дата поступления], [Дата ремонта]') ; ADOQuery1.SQL.Add('from Клиент'); ADOQuery1.SQL.Add('where ((КЛ LIKE ''%'+Edit1.Text+'%'') AND (ФИО LIKE ''%'+Edit2.Text+'%'' OR ФИО IS NULL ) AND (Оборудование LIKE ''%'+Edit4.Text+'%'' OR Оборудование IS NULL) AND (Телефон LIKE ''%'+Edit3.Text+'%'' OR Телефон IS NULL) )'); ADOQuery1.Open; {выполняем запрос} ADOQuery1.Active:=true; DataSource1.DataSet:=ADOQuery1; DbGrid1.DataSource:=DataSource1; end; |
#3
|
||||
|
||||
Цитата:
Это строчка лишняя раз открываешь кверик. Open и Active:= true выполняют одну и ту же операцию. Google в помощь |