Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Поиск   Найти похожие ветки 

 
Loco ©   (2002-08-12 14:25) [0]

Привет всем!
Ребята, подскажите, может я туплю просто, но не могу сообразить... Есть на форме 3 элемента edit (к примеру). Они соответствуют 3 полям в таблице (например: Фамилия, Имя, Отчество). Из edit"ов берутся параметры для запроса. Если все 3 поля заполнены - всё нормально, а если хоть одно пустое - запрос не работает (не удивительно):). А если я хочу найти всех Ивановых, и мне по фигу какое там у них И.О. ............. Одним словом: как пустое поле определить как "джокер"???? Может вопрос и глупый, но чего-то не придумывается ничего........
Спасибо.


 
SaS13 ©   (2002-08-12 14:30) [1]

как пустое поле определить как "джокер"
не использовать его в запросе.
Как поиск то происходит?


 
Loco ©   (2002-08-12 14:40) [2]

2SaS13 ©
Привет.
Поиск происходит при помощи query.
А не использовать не получается: значение edit"а используется как Param в запросе.


 
Loco ©   (2002-08-12 14:45) [3]

Код:
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}
Как не использовать????


 
elv ©   (2002-08-12 14:52) [4]

if Trim(edit.text)="" then edit.text:="%";


 
SaS13 ©   (2002-08-12 14:55) [5]

а можно так:
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;


 
Loco ©   (2002-08-12 15:03) [6]

Мысль!
Шпасибо, щас попробую


 
-peter- ©   (2002-08-12 15:09) [7]

Правельнее будет, наверное, так:
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;


 
SaS13 ©   (2002-08-12 15:10) [8]

или действительно как говорит elv © (12.08.02 14:52) попробуй через оператор LIKE



Страницы: 1 вся ветка

Текущий архив: 2002.09.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
3-3311
VZ-KZ
2002-08-12 15:31
2002.09.02
Сохранение базы в формате Excel


1-3515
AlexBeliy
2002-08-21 15:11
2002.09.02
Создание новой формы


14-3599
SPeller
2002-08-05 20:31
2002.09.02
Опять РНР


1-3486
KPY
2002-08-20 14:30
2002.09.02
как сделать непрямоугольную кнопку?


7-3635
programmerts
2002-06-20 19:11
2002.09.02
Каким образом можно безболезненно удалить файлы, которые не удаля