![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Query
Loco © (2002-08-07 15:32:00)Hello всем!
Народ подскажите, plzzzzzz, что тут не так:
procedure TForm1.btSearchClick(Sender: TObject);
begin
with DM1.Query1 do
begin
Close;
SQL.Clear;
SQL.Add("SELECT *");
SQL.Add("FROM "currentdata.dbf" c, "streets.dbf" s");
case Radiogroup1.ItemIndex of
0:DM1.Query1.SQL.Add("WHERE c.PASPSER =:SERIA AND c.PASPNOM =:NUMBER");
1:DM1.Query1.SQL.Add("WHERE c.fam =:Familia and c.nam =:Name and c.pat =:Otch and c.bday=:DRogd");
2:DM1.Query1.SQL.Add("WHERE s.street =:Ul and s.code = c.streetcode and c.home =:house and c.bld =:korp and c.flat =:kvart")
end;
ParamByName("Seria").AsString:=edSeria.Text;
ParamByName("Number").AsString:=edNumber.Text;
ParamByName("Familia").AsString:=edFam.Text;
ParamByName("Name").AsString:=edName.Text;
ParamByName("Otch").AsString:=edOtch.Text;
ParamByName("DRogd").AsDate:=dtpRogd.Date;
ParamByName("ul").AsString:=edStreet.Text;
ParamByName("house").AsString:=edHouse.Text;
ParamByName("korp").AsString:=edKorp.Text;
ParamByName("kvart").AsString:=edKvart.Text;
Open;
end;{with}
if DM1.Query1.RecordCount <> 0 then
DM1.DSpasp.DataSet:=DM1.Query1
else
begin
ShowMessage("Ни хрена не нашлося!!!!");
DM1.DSpasp.DataSet:=DM1.pasp;
end;{else}
end;
Блин!!! Не хотит работать и всё!
Спасибо за потраченное время :))
Loco (2002-08-07 16:05:00) [1]2SaS13
Мне тоже интересно .... даже запуститься не хотит!!!!
может перегрузиться? :))
Loco (2002-08-07 16:03:00) [2]2SaS13 © (07.08.02 16:00)
Не, итеминдекс в порядке: =0
Loco (2002-08-07 16:01:00) [3]2Val
СПАСИБО Это тоже мысля.....
от всех бы столько достойных мыслей :))))))))))))))))))))
SaS13 (2002-08-07 16:00:00) [4]
> Val © (07.08.02 15:55)
> Неплохо еще и Query.Params.Сlear; делать, когда SQL очищаете.
при очистке SQL.Clear очищается и Params.
> Loco © (07.08.02 15:56)
> Выпадает он в самом начале... Вместо формы мне стек показывает!!
А может у тебя тогда Radiogroup1.ItemIndex = -1 ты поподробнее напиши: обработчик - нажатие кнопки, а форма не показана - интересно
Val (2002-08-07 15:59:00) [5]>Loco © (07.08.02 15:54)
2. если ещё и from ...
:) можно же так:
...
SQL.Add("SELECT *");
SQL.Add("FROM "currentdata.dbf" c ");
case Radiogroup1.ItemIndex of
0:DM1.Query1.SQL.Add("WHERE c.PASPSER =:SERIA AND c.PASPNOM =:NUMBER");
1:DM1.Query1.SQL.Add("WHERE c.fam =:Familia and c.nam =:Name and c.pat =:Otch and c.bday=:DRogd");
2:DM1.Query1.SQL.Add(", "streets.dbf" s WHERE s.street =:Ul and s.code = c.streetcode and c.home =:house and c.bld =:korp and c.flat =:kvart")
3JIA9I CyKA (2002-08-07 15:58:00) [6]Тогда Вам к другому врачу.
Loco (2002-08-07 15:58:00) [7]2Val
Эт-то мысля хороший!
Ты почему опять на Вы меня называешь????
Loco (2002-08-07 15:56:00) [8]2SaS13
Выпадает он в самом начале... Вместо формы мне стек показывает!!
Val (2002-08-07 15:55:00) [9]Неплохо еще и Query.Params.Сlear; делать, когда SQL очищаете.
SaS13 (2002-08-07 15:54:00) [10]Отладчиком пробегись и посмотри где вываливает, если на открытие, то запрос сотавлени неверно, копай там.
Loco (2002-08-07 15:54:00) [11]2Val
Hi!!!:)))))))))
Рад видеть!
Но:
1. параметры если в кейс поставить - не работает (см. предыдущую мессагу);
2. если ещё и from с параметрами запихать в кейс - смысла в этом самом кейсе - хрен да маленько. Проще под каждую кнопку написать запрос ;)
ZrenBy (2002-08-07 15:53:00) [12]Напиши сначала в зависимости от case
ПОЛНЫЙ текст Query со ВСЕМИ параметрами
Потом будешь сокращать
3JIA9I CyKA (2002-08-07 15:52:00) [13]Хочу запрос для радиокнопки!
Loco (2002-08-07 15:50:00) [14]2SaS13
а-аа-а :))))
нифига!!!!!!!!
не хочет он так работать тоже, знаешь чего пишет???
constant expression expected
Val (2002-08-07 15:50:00) [15]Блин!!! Не хотит работать и всё!
нужно бы подробнее.
на первый взгляд, совсем нелишним будет распределить параметры по значениям кейса, к своим текстам запросов. Также предложение from нужно тоже распределить по кейсу, поскольку в первых двух случаях вторая таблица (s) не используется.
SaS13 (2002-08-07 15:46:00) [16]
> Loco © (07.08.02 15:41)
просто в кейсе и прописывай параметры:
case Radiogroup1.ItemIndex of
0:begin
DM1.Query1.SQL.Add("WHERE c.PASPSER =:SERIA AND c.PASPNOM =:NUMBER");
ParamByName("Seria").AsString:=edSeria.Text;
ParamByName("Number").AsString:=edNumber.Text;
end;
Loco (2002-08-07 15:43:00) [17]2exciter_
И..... для каждой радиокнопочки - отдельный запрос?????
Loco (2002-08-07 15:41:00) [18]2SaS13
Не-е, это всё хорошо, конечно, а как исправить??? :))
exciter_ (2002-08-07 15:40:00) [19]В данном случае, избавься от кейза.
ZrenBy (2002-08-07 15:37:00) [20]Если текст Query пишется в проге,
то мой тебе совет не использовать параметры