Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1205741559
F@T@L_Err0r
2008-03-17 11:12
2008.04.13
Запуск службы


15-1204111799
TUser
2008-02-27 14:29
2008.04.13
Сервис - каталог каталогов ссылок


2-1205841012
Washington
2008-03-18 14:50
2008.04.13
ADO и DLL


15-1204193130
Kerk
2008-02-28 13:05
2008.04.13
Google Sites


2-1205950865
Alex_C
2008-03-19 21:21
2008.04.13
Сохранение св-ва компонента





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский