Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
Люди, неужели никому не нужно знать курс бакса и евра на сегодня? И, естественно, иметь его у себя в БД. Если кто-нибудь знает, как это сделать на T-SQL, поделитесь плз! Можно даже одного бакса.
9 ноя 04, 17:31    [1092538]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Nividimka
Member

Откуда:
Сообщений: 148
Могу предложить тебе на выбор 2-а варианта:
1. Программка, которая лезет в Инет, берёт курс ЦБ (+ продажи Альфа-Банка) и пишет в базу.
2. Ссылку на веб-сервис, с которого можешь брать курс - куда-нибудь вставишь, хоть в дтс пекадж.

И то и другое тебе придётся зашедулировать.

У меня работает 1-ый вариант (2-ой - это следствие 1-го :)).

Если у кого проще, мне самому интересно....
9 ноя 04, 17:49    [1092611]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
Вообще, для таких вещей делают модули сопряжения с биржами, банками и т.п.

все не так просто
9 ноя 04, 17:50    [1092614]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Nividimka
Member

Откуда:
Сообщений: 148
В догонку по варианту 2.
Могу дать ссылку на jsp страничку: если сможешь её обработать сам.

Про то, от куда берётся курс: ЦБ с сайта rsb, альфа-банка с ихнего.
9 ноя 04, 18:00    [1092641]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Nividimka
Member

Откуда:
Сообщений: 148
Очепятка: rbc
Nividimka
ЦБ с сайта rsb
9 ноя 04, 18:02    [1092644]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Тащим xml-ку с ЦБР и усе :) далее мучим её через OPENXML :) Как угодно одним словом
9 ноя 04, 18:11    [1092664]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Чуток уточню ссылку вот оно
9 ноя 04, 18:21    [1092694]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Nividimka
Member

Откуда:
Сообщений: 148
Це гарно! Надо на досуге попробовать...
Только сайт у них дюже тормоз...
buser
Чуток уточню ссылку вот оно
9 ноя 04, 18:27    [1092718]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Andrey Filatow
Member

Откуда:
Сообщений: 399
www.rbc.ru попробуй
9 ноя 04, 21:11    [1092948]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
Nividimka
1. Программка, которая лезет в Инет, берёт курс ЦБ (+ продажи Альфа-Банка) и пишет в базу.

Вот это то что надо. Код в студию! Альфу уж сам выброшу.
10 ноя 04, 09:21    [1093279]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
superbluesman
Member

Откуда:
Сообщений: 1017
Могу предложить программку, которая закачиваетв базу курсы указанных валют с сайта Цетробанка
10 ноя 04, 09:25    [1093289]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
PA
Member

Откуда: Санкт-Петербург
Сообщений: 4146
Вот пример для USD:
declare @xmlString varchar(8000)
declare @val_1 datetime
declare @val_2 datetime
declare @url varchar(255)

select @val_2 = GetDate()
select @val_1 = DateAdd(day,1-Day(@val_2), @val_2)

select @url = 'http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='+
	Convert(char(10), @val_1, 103)+'&date_req2='+
	Convert(char(10), @val_2, 103)+'&VAL_NM_RQ=R01235'

exec LoadXMLFromFile 
	@url, 
	@xmlString output

declare @h int

exec sp_xml_preparedocument  @h output, @xmlString

select 
	[Date], 
	Nominal, 
	Convert(money, replace(Value, ',', '.')) 'Value'
from 
	OpenXML (@h, '//Record', 0)
with 
(
	[Date] char(10) '@Date',
	Nominal int './Nominal',
	Value varchar(10) './Value'
)

exec sp_xml_removedocument @h

Текст LoadXMLFromFile(где-то в инете попалась):
CREATE PROCEDURE LoadXMLFromFile
(
	@tcFileName		VARCHAR(255),
	@tcXMLString	VARCHAR(8000) OUTPUT
) AS
BEGIN
	-- Scratch variables used in the script
	DECLARE @retVal INT
	DECLARE @oXML INT
	DECLARE @errorSource VARCHAR(8000)
	DECLARE @errorDescription VARCHAR(8000)
	DECLARE @loadRetVal INT

	-- Initialize the XML document
	EXEC @retVal = sp_OACreate 'MSXML2.DOMDocument', @oXML OUTPUT
	IF (@retVal <> 0)
	BEGIN
		-- Trap errors if any
		EXEC sp_OAGetErrorInfo @oXML, @errorSource OUTPUT, @errorDescription OUTPUT
		RAISERROR (@errorDescription, 16, 1)

		-- Release the reference to the COM object
		EXEC sp_OADestroy @oXML
		RETURN
	END

	EXEC @retVal = sp_OASetProperty @oXML, 'async', 0
	IF @retVal <> 0
	BEGIN
 		-- Trap errors if any
		EXEC sp_OAGetErrorInfo @oXML, @errorSource OUTPUT, @errorDescription OUTPUT
		RAISERROR (@errorDescription, 16, 1)

		-- Release the reference to the COM object
		EXEC sp_OADestroy @oXML
		RETURN
	END

	-- Load the XML into the document
	EXEC @retVal = sp_OAMethod @oXML, 'load', @loadRetVal OUTPUT, @tcFileName
	IF (@retVal <> 0)
	BEGIN
		-- Trap errors if any
		EXEC sp_OAGetErrorInfo @oXML, @errorSource OUTPUT, @errorDescription OUTPUT
		RAISERROR (@errorDescription, 16, 1)

		-- Release the reference to the COM object
		EXEC sp_OADestroy @oXML
		RETURN
	END

	-- Get the loaded XML
	EXEC @retVal = sp_OAMethod @oXML, 'xml', @tcXMLString OUTPUT
	IF (@retVal <> 0)
	BEGIN
		-- Trap errors if any
		EXEC sp_OAGetErrorInfo @oXML, @errorSource OUTPUT, @errorDescription OUTPUT
		RAISERROR (@errorDescription, 16, 1)

		-- Release the reference to the COM object
		EXEC sp_OADestroy @oXML
		RETURN
	END

	-- Release the reference to the COM object
	EXEC sp_OADestroy @oXML

END
10 ноя 04, 09:47    [1093353]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
2 Alex_NF а как же муки творчества... и радость от победы?
Написание такого блудняка это максимум 30 минут работы...
Поиск уже готового кода - 5-10 минут (на этом сайте уже раз 100 поднимали эту тему)
2 PA
Все хорошо... но sp_OA... лично мне не очень нравится... :)
10 ноя 04, 09:58    [1093383]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Andrey Ts
Member

Откуда: С-Пб
Сообщений: 516
Подскажите, плз, какой код там у EURO
(у доллара я понял &VAL_NM_RQ=R01235)
10 ноя 04, 10:37    [1093518]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
buser
2 Alex_NF а как же муки творчества... и радость от победы?
Написание такого блудняка это максимум 30 минут работы...

Это хум хау... Fortran знаю, PL/1 знаю, Assembler... два знаю, REXX знаю, FoxPro знаю, Pascal знаю, C++ знаю, VB знаю, T-SQL...м-м-м... дапустым, знаю, XML - нэ знаю :-( Поэтому и ищу готовенькое.

buser
Поиск уже готового кода - 5-10 минут (на этом сайте уже раз 100 поднимали эту тему)

Э, слющай, дарагой, еслы бы нащёл, нэ спрашивал бы... "Импорт" - много, "валюта" - много, программа - нэту.
10 ноя 04, 10:45    [1093559]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
PA
Вот пример для USD:

Ур-р-ра! Заработало!
Спасибо, дорогой РА, я тебе этого так не забуду :-)
10 ноя 04, 11:06    [1093653]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Не совсем честно, но поиск по www.cbr.ru
10 ноя 04, 12:43    [1094232]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
Andrey Ts
Подскажите, плз, какой код там у EURO
(у доллара я понял &VAL_NM_RQ=R01235)

EUR: R01239 - найдено эмпирически.
10 ноя 04, 13:46    [1094661]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
guest111
Guest
Alex_NF
Andrey Ts
Подскажите, плз, какой код там у EURO
(у доллара я понял &VAL_NM_RQ=R01235)

EUR: R01239 - найдено эмпирически.

Справочник по кодам валют
10 ноя 04, 14:02    [1094724]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
Alex_NF
Andrey Ts
Подскажите, плз, какой код там у EURO
(у доллара я понял &VAL_NM_RQ=R01235)

EUR: R01239 - найдено эмпирически.

GBP: RO1036
10 ноя 04, 14:07    [1094748]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
PA
Вот пример для USD:

Чего-то я не понял :-(
Когда запускаю программу (через QA) на одном сервере, всё ОК. Переношу SP на другой сервер на копию БД и запускаю так же в QA - ругается:
Server: Msg 50000, Level 16, State 1, Procedure LoadXMLFromFile, Line 45
Отказано в доступе.
Permissions на SP LoadXMLFromFile в обоих случаях одинаковые, то есть никаких, запускаю под одним и тем же админским логином, все остальные SP и запросы выполняются одинаково.
12 ноя 04, 12:39    [1101346]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
PA
Member

Откуда: Санкт-Петербург
Сообщений: 4146
Alex_NF
PA
Вот пример для USD:

Чего-то я не понял :-(
Когда запускаю программу (через QA) на одном сервере, всё ОК. Переношу SP на другой сервер на копию БД и запускаю так же в QA - ругается:
Server: Msg 50000, Level 16, State 1, Procedure LoadXMLFromFile, Line 45
Отказано в доступе.
Permissions на SP LoadXMLFromFile в обоих случаях одинаковые, то есть никаких, запускаю под одним и тем же админским логином, все остальные SP и запросы выполняются одинаково.

Сервак-то за курсами в инет лезет. Может его прокси не пускает?
12 ноя 04, 17:52    [1103036]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
sergkv_
Member

Откуда:
Сообщений: 16
да кстати очень важная проблемка, запросы выполняет сервак под своей системной учетной записью, которой естественно нет на прокси
как заставить выполнить этот запрос под именем юзера домена (чтоб прокся пустила?)
15 ноя 04, 11:54    [1105544]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Hibernate
Member

Откуда: Киев
Сообщений: 1670
sergkv_
да кстати очень важная проблемка, запросы выполняет сервак под своей системной учетной записью, которой естественно нет на прокси
как заставить выполнить этот запрос под именем юзера домена (чтоб прокся пустила?)

проще на прокси завести такого-же локального юзера с таким-же паролем.
15 ноя 04, 15:01    [1106358]     Ответить | Цитировать Сообщить модератору
 Re: Импорт курсов валют  [new]
Alex_NF
Member

Откуда: Москва
Сообщений: 24
PA
Сервак-то за курсами в инет лезет. Может его прокси не пускает?
Вот и я об этом подумал, но сисадмин думать не хочет, будет время - надавлю, а пока на рабочей базе работает - и ладно.
15 ноя 04, 18:02    [1107141]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить