Цитата:
Сообщение от Страдалецъ
Да зачем перегружать систему дополнительными сервисами, как вы и сказали - планировщик для запуска обычного приложения.
|
Я почему к сервису больше склоняюсь: бывает такое, что в момент выполнения запланированного запуска программы интернет отсутствует. В итоге обновление курса в БД не происходит.
Сделать запланированное действие раз в час, и в реестре хранить какой-нибудь ключ с информацией о том был ли обновлён курс на сегодняшний день или нет. Тогда всё равно остаётся 60мин, в которых люди не смогут нормально работать.
В конце концов сервис будет висеть на Серверной машине. Я не думаю, что это будет дикий перегруз
Кстати, код для реализации хранения Курса Валют EUR на основе SOAP:
Статья по теме.
Код:
procedure TForm1.GetDailyEUR(Sender: TObject);
var
DIS: DailyInfoSoap;
XSDateTime: TXSDateTime;
Res: GetCursOnDateResult;
i: integer;
begin
DIS := GetDailyInfoSoap();
XSDateTime := TXSDateTime.Create;
try
XSDateTime.AsUTCDateTime := Now;
Res := GetCursOnDateResult.Create;
try
with TXMLDocument.Create(Application) do
try
Active := True;
DocumentElement := DIS.GetCursOnDateXML(XSDateTime).XMLNode;
SaveToFile('DIS.xml');
for i := 0 to ChildNodes.FindNode('ValuteData')
.ChildNodes.Count - 1 do
begin
if ChildNodes.FindNode('ValuteData').ChildNodes.Nodes[i]
.ChildNodes.FindNode('VchCode').NodeValue = 'EUR' then
Caption := ChildNodes.FindNode('ValuteData').ChildNodes.Nodes[i]
.ChildNodes.FindNode('Vcurs').NodeValue;
end;
finally
Free;
end;
finally
Res.Free;
end;
finally
XSDateTime.Free;
end;
end;