Форум FAQ О команде
Поиск по сайту:
 
Sybase
Sybase ASA  
Sybase ASE  
Sybase IQ  
Sybase PowerDesigner  
Sybase PowerBuilder  

Продукты
Наши продукты  
Продукты партнеров портала  

Сообщества
Alef community  

Меню
Регистрация  
Почта  

Вход

Рассылка
Рассылка 'РСУБД Sybase ASA 9 - мощность, легкость и надежность'
Почтовая рассылка
"Технологии обработки данных компании Sybase"


Статистика
Яндекс цитирования

Rambler's Top100
Находится в каталоге Апорт

Главная -> Полезный код
Получение курса валют с сайта ЦБ РФ.

Получение курса валют с сайта ЦБ РФ.

Создаем веб-процедуру, которая получает курс валют в виде 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
Материал прочитан: 18882 раз(а)
[ Назад ]



Продвижение сайтов
Биржа ссылок

Copyright©2005 phpMS. Все права защищены.
hosted on pets-tree