Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];
ВнизПрименение SQL ко всему списку Найти похожие ветки
← →
SveT (2008-03-20 01:14) [0]При выполнении загружается спикок значений, подсчет идет только по первому значению, и соответственно апдейтится только это значение:
if DMFrm. ZTQuery.RecordCount>0 then begin
p2 := DMFrm. ZTQuery.FieldByName("P").AsCurrency;
K2 := DMFrm. ZTQuery.FieldByName("K").AsCurrency;
summa := RoundTo(k2 * p2,-2);
end;
DMFrm.TmpQuery.Close;
DMFrm.TmpQuery.SQL.Clear;
DMFrm.TmpQuery.SQL.Add("Update "T.db"");
DMFrm.TmpQuery.SQL.Add("SET K="+FloatToStr(K2)+",P="+FloatToStr(p2)+", SUMMA="+FloatToStr(summa));
DMFrm.TmpQuery.SQL.Add("WHERE KOD="""+DMFrm. ZTQuery.FieldByName("KOD").AsString+"""");
DMFrm.TmpQuery.ExecSQL;
Подскажите, пожалуйста, как сделать чтобы поля "P", "К" и "summa" заполнялись ко всему списку записей, а не только к первой записи.
Спасибо!
← →
ЦУП © (2008-03-20 01:25) [1]Вообще, надо изучать SQL.
Формат UPDATE с простым подзапросом:
UPDATE MyTable1 SET
T1Field1=MyValueConst
WHERE T1Field2 IN (SELECT T2Field2 FROM MyTable2 WHERE ...)
← →
SveT (2008-03-20 01:30) [2]
> Вообще, надо изучать SQL.
Я и изую, и с вашей помощью тоже. (когда нет под рукой книги)
Спасибо.
← →
Германн © (2008-03-20 01:50) [3]
> ЦУП © (20.03.08 01:25) [1]
>
> Вообще, надо изучать SQL.
>
Вот это точно.
← →
Германн © (2008-03-20 01:53) [4]Пардон. Забыл добавить, что "такой простой подзапрос" врядли поможет в случае LocalSQL для решения сабжа.
Имхо.
← →
Германн © (2008-03-20 02:15) [5]
> SveT (20.03.08 01:14)
>
> При выполнении загружается спикок значений, подсчет идет
> только по первому значению, и соответственно апдейтится
> только это значение:
>
Цикл:while not DMFrm. ZTQuery.EOF
p2 := DMFrm. ZTQuery.FieldByName("P").AsCurrency;
K2 := DMFrm. ZTQuery.FieldByName("K").AsCurrency;
summa := RoundTo(k2 * p2,-2);
DMFrm.TmpQuery.Close;
DMFrm.TmpQuery.SQL.Clear;
DMFrm.TmpQuery.SQL.Add("Update "T.db"");
DMFrm.TmpQuery.SQL.Add("SET K="+FloatToStr(K2)+",P="+FloatToStr(p2)+", SUMMA="+FloatToStr(summa));
DMFrm.TmpQuery.SQL.Add("WHERE KOD="""+DMFrm. ZTQuery.FieldByName("KOD").AsString+"""");
DMFrm.TmpQuery.ExecSQL;
Next;
end;
тебе поможет. Но поскольку реальная ситуация с таблицами не объяснена в сабже, этот совет может быть не оптимальным.
← →
SveT (2008-03-20 08:45) [6]to
> Германн ©
, спасибо за совет с циклом, но
[Error] OPERins.pas(137): "DO" expected but identifier "p2" found
← →
SveT (2008-03-20 09:00) [7]нет DO
← →
SveT (2008-03-20 09:05) [8]Этот цикл - бесконечен (программа зависает, ресурсы 99,9%). Данные перестали вствляться, соот-но вычислений нет.
← →
Johnmen © (2008-03-20 09:16) [9]Копипаст сделан. Пора включать голову. Хотя бы слегка...
← →
zorik © (2008-03-20 09:18) [10]Посмотри внимательно! begin ... end решит проблему
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c