Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
ВнизПоиск Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c