![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск
Loco © (2002-08-12 14:25:00)Привет всем!
Ребята, подскажите, может я туплю просто, но не могу сообразить... Есть на форме 3 элемента edit (к примеру). Они соответствуют 3 полям в таблице (например: Фамилия, Имя, Отчество). Из edit"ов берутся параметры для запроса. Если все 3 поля заполнены - всё нормально, а если хоть одно пустое - запрос не работает (не удивительно):). А если я хочу найти всех Ивановых, и мне по фигу какое там у них И.О. ............. Одним словом: как пустое поле определить как "джокер"???? Может вопрос и глупый, но чего-то не придумывается ничего........
Спасибо.
SaS13 (2002-08-12 15:10:00) [1]или действительно как говорит elv © (12.08.02 14:52)попробуй через оператор LIKE
-peter- (2002-08-12 15:09:00) [2]Правельнее будет, наверное, так:
0: begin
DM1.Query1.SQL.Add("WHERE c.PASPSER LIKE :SERIA AND c.PASPNOM LIKE :NUMBER");
if edSeria.Text="" then edSeria.Text:="%";
if edNumber.Text="" then edNumber.Text:="%";
DM1.Query1.ParamByName("Seria").AsString:=edSeria.Text;
DM1.Query1.ParamByName("Number").AsString:=edNumber.Text;
end;
Loco (2002-08-12 15:03:00) [3]Мысль!
Шпасибо, щас попробую
SaS13 (2002-08-12 14:55:00) [4]а можно так:
1: begin
cStr := "WHERE ";
if edFam.Text <> EmptyStr then
cStr := cStr + "c.fam =:Familia and ";
if edName.Text <> EmptyStr then
cStr := cStr + "c.nam =:Name and ";
if edOtch.Text <> EmptyStr then
cStr := cStr + "c.pat =:Otch and ";
cStr := cStr + "c.pat =:Otch";
DM1.Query1.SQL.Add( cStr );
end;
elv (2002-08-12 14:52:00) [5]
if Trim(edit.text)="" then edit.text:="%";
Loco (2002-08-12 14:45:00) [6]Код:
with DM1.Query1 do
begin
Close;
SQL.Clear;
SQL.Add("SELECT *");
SQL.Add("FROM "currentdata.dbf" c");
case Radiogroup1.ItemIndex of
0: begin
DM1.Query1.SQL.Add("WHERE c.PASPSER =:SERIA AND c.PASPNOM =:NUMBER");
DM1.Query1.ParamByName("Seria").AsString:=edSeria.Text;
DM1.Query1.ParamByName("Number").AsString:=edNumber.Text;
end;
1: begin
DM1.Query1.SQL.Add("WHERE c.fam =:Familia and c.nam =:Name and c.pat =:Otch and c.bday=:DRogd");
DM1.Query1.ParamByName("Familia").AsString:=edFam.Text;
DM1.Query1.ParamByName("Name").AsString:=edName.Text;
DM1.Query1.ParamByName("Otch").AsString:=edOtch.Text;
DM1.Query1.ParamByName("DRogd").AsDate:=dtpRogd.Date;
end;
2: begin
DM1.Query1.SQL.Add(", "streets.dbf" s WHERE s.street =:Str and s.code = c.streetcode and c.home =:House and c.bld =:Korp and c.flat =:Kvart");
DM1.Query1.ParamByName("Str").AsString:=edStreet.Text;
DM1.Query1.ParamByName("House").AsString:=edHouse.Text;
DM1.Query1.ParamByName("Korp").AsString:=edKorp.Text;
DM1.Query1.ParamByName("Kvart").AsString:=edKvart.Text;
end;
end;
Open;
end;{with}
Как не использовать????
Loco (2002-08-12 14:40:00) [7]2SaS13 ©
Привет.
Поиск происходит при помощи query.
А не использовать не получается: значение edit"а используется как Param в запросе.
SaS13 (2002-08-12 14:30:00) [8]как пустое поле определить как "джокер"
не использовать его в запросе.
Как поиск то происходит?