|
Sybase
|
|
|
|
|
Продукты
|
|
|
|
|
Сообщества
|
|
|
|
|
Меню
|
|
|
|
|
Вход
|
|
|
|
|
Рассылка
|
|
|
|
|
Статистика
|
|
|
|
|
Получение курса валют с сайта ЦБ РФ.
|
Получение курса валют с сайта ЦБ РФ.Создаем веб-процедуру, которая получает курс валют в виде XML через веб-сервис ЦентроБанка:
CREATE PROCEDURE "DBA"."sp_asc_CB_GetCursOnDate_XML"(in date_req char(10))
result(
Attribute long varchar,
Value long varchar
)
url 'http://www.cbr.ru/scripts/XML_daily.asp' type 'HTTP:GET';
COMMENT ON PROCEDURE "DBA"."sp_asc_CB_GetCursOnDate_XML"
IS 'Получить курс валют на указанную дату с Центробанка РФ в виде XML';
Обвязываем ее ASA-шной процедурой, которая преобразовывает XML в набор данных:
CREATE PROCEDURE "DBA"."sp_asc_CB_GetCursOnDate" (
IN @date_req date DEFAULT NULL
)
RESULT (
ID char(10),
NumCode char(3),
CharCode char(3),
Nominal int,
Name char(50),
Value numeric(15, 4)
)
BEGIN
SELECT l.ID, l.NumCode, l.CharCode, l.Nominal, l.Name,
CONVERT(numeric(15, 4), Replace(l.Value, ',', '.')) AS Value
FROM sp_asc_CB_GetCursOnDate_XML (CONVERT(char(10), IsNull(@date_req, Now()), 103)) w,
LATERAL (
dbo.OpenXML(w.Value, '/ValCurs/Valute')
WITH (
ID char(10) '@ID',
NumCode char(3) './NumCode',
CharCode char(3) './CharCode',
Nominal int './Nominal',
Name char(50) './Name',
Value char(15) './Value'
)
) AS l
WHERE Attribute = 'Body';
END;
COMMENT ON PROCEDURE "DBA"."sp_asc_CB_GetCursOnDate"
IS 'Получить курс валют на указанную дату с Центробанка РФ в виде набора данных';
Теперь получаем курс валют на текущую дату:
SELECT *
FROM sp_asc_CB_GetCursOnDate (Now());
... ну а дальше как обычно. Можем использовать в запросах, ставить условия, сделать EVENT, который по расписанию получает курс валют и вставляет в нужную таблицу. Лишь бы сервер интернет видел :)
|
Дата публикации: Monday 27 March 2006 16:54:39 Материал прочитан: 18763 раз(а) [ Назад ] |
|
|
|
|
|
|
Copyright©2005 . Все права защищены.
|