Главная страница
    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.009 c
2-1205927037
asdf2
2008-03-19 14:43
2008.04.13
Как сделать MultiSelect в TCheckListBox?


2-1205773453
Александр Ч.
2008-03-17 20:04
2008.04.13
Обратная совместимость программ с Vista на XP


15-1204081129
Slider007
2008-02-27 05:58
2008.04.13
С днем рождения ! 27 февраля 2008 среда


2-1205950526
Stepper
2008-03-19 21:15
2008.04.13
Почему сие не работает? Бутафорский ProgressBar :)


6-1184925658
digiman
2007-07-20 14:00
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский