powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Импорт курсов валют
25 сообщений из 64, страница 2 из 3
Импорт курсов валют
    #32835392
Yuraz.com
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserЧуток уточню ссылку вот оно
Люди, у кого сегодня эта ссылка работает? У меня не открывает целый день. :(
Еще вопрос, есть ли что то похожее в других банках (Внешэкономбанк и т.п.)
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32835454
Фотография superbluesman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там и справочник валюты я разместил:
http://www.sql.ru/forum/actualthread.aspx?tid=145807
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32835594
sraider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_NFЛюди, неужели никому не нужно знать курс бакса и евра на сегодня? И, естественно, иметь его у себя в БД. Если кто-нибудь знает, как это сделать на T-SQL, поделитесь плз! Можно даже одного бакса.

я делал утилитку на Access'е для закачки курсов с сайта ЦБ на SQL Server... можно ее вешать в шедулер, чтобы она каждое утро грузила курс.

статья
утилитка
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32835718
Yuraz.com
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sraider
Спасибо за утилитку, мне под MSSQL, здесь уже код встречался..
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938498
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PAВот пример для USD:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
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(где-то в инете попалась):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
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


подскажите плз если процедура LoadXMLFromFile не работает, в чем может быть причина? У меня SQL 2000, может на него что-то доставить надо чтобы он распознавал xml? Процедура работает без ошибок, но возвращает пустой tcXMLString, забирая корректный url.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938562
tt12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может у sql сервера (его рабочей учетной записи) нет доступа в интернет?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938588
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tt12Может у sql сервера (его рабочей учетной записи) нет доступа в интернет?
А как это проверить? У нас доступ в инет по ip адресу компа и на том компе на котором sql живет интернет открыт
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938602
tt12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На SQL сервере под учетной записью, с которой он работает, выйдите через броузер в итнернет, зайдите на сайт с курсами.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938636
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tt12На SQL сервере под учетной записью, с которой он работает, выйдите через броузер в итнернет, зайдите на сайт с курсами.
У меня учетные записи на базы SQL и входа в сеть разные (SQL - sa, сеть - user и домен Office). На сервер с SQL я попадаю с уч записью user, могу открыть интернет, зайти на любой сайт. Сетевой уч записи sa у меня нет. Я уже думаю может есть какие-то обновления для того чтобы сервер работал с XML?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938699
tt12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для вашей задачи сервис операционной системы "MSSQLSERVER" должен стартовать под учетной записью Windows, имеющей доступ в интернет на нужный сайт. Попробуйте прочитать средствами tsql копию странички с курсами разместив ее в локальной сети.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938764
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tt12Для вашей задачи сервис операционной системы "MSSQLSERVER" должен стартовать под учетной записью Windows, имеющей доступ в интернет на нужный сайт. Попробуйте прочитать средствами tsql копию странички с курсами разместив ее в локальной сети.
Это работает, на серверном компе страничку сохранила из окошка explorer'a, в котором тоже все без проблемм открылось. А напрямую не соединяет через инет.... :-(((
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32938959
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-- Load the XML into the document
EXEC @retVal = sp_OAMethod @oXML, 'load', @loadRetVal OUTPUT, @tcFileName
IF (@retVal <> 0)
BEGIN

А где проверка статуса завершения метода load ?

А напрямую не соединяет через инет.... :-(((
Под какой учетной записью стартует сервис MSSQLSERVER ?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939165
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory -- Load the XML into the document
EXEC @retVal = sp_OAMethod @oXML, 'load', @loadRetVal OUTPUT, @tcFileName
IF (@retVal <> 0)
BEGIN

А где проверка статуса завершения метода load ?

А напрямую не соединяет через инет.... :-(((
Под какой учетной записью стартует сервис MSSQLSERVER ?

Стоит галка "с системной учетной записью", т.е как я понимаю по умолчанию это имя user, с которым я вхожу в сеть. Или не так? Я после этого запустив IE вижу сайт с курсами валют, а сервер нет.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939175
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит галка "с системной учетной записью", т.е как я понимаю по умолчанию это имя user, с которым я вхожу в сеть. Или не так?
Не так. Запуск сервиса не имеет никакого отношения к тому под какими учетными записями вы коннектитесь к нему.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939206
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory Стоит галка "с системной учетной записью", т.е как я понимаю по умолчанию это имя user, с которым я вхожу в сеть. Или не так?
Не так. Запуск сервиса не имеет никакого отношения к тому под какими учетными записями вы коннектитесь к нему.
А если у меня инет привязан к IP компа, а не к учетной записи? В таком варианте имя под которым коннектится сервер может на что-то влиять?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939242
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое "инет привязан" ? На файерволе/прокси какие-то правила прописаны ?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939257
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryЧто такое "инет привязан" ? На файерволе/прокси какие-то правила прописаны ?
Да, там прописано что комп с конкретным IP может идти в инет, внезависимости от того какой пользователь на этом компе будет сидеть. И я с компа с базой SQL спокойно захожу на любой сайт. А сам SQL нет :-( По-моему, в данном случае под какой учетной записью запускается MSSQLSERVER роли играть не должно?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939298
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, в данном случае под какой учетной записью запускается MSSQLSERVER роли играть не должно?
Для того, чтобы убедится в этом нужно попробовать запустить MSSQLSERVER под другой учетной записью. Например, под вашей
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939327
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory По-моему, в данном случае под какой учетной записью запускается MSSQLSERVER роли играть не должно?
Для того, чтобы убедится в этом нужно попробовать запустить MSSQLSERVER под другой учетной записью. Например, под вашей
нет, данных не возвращает :-((( , ошибку правда тоже :-)))
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939355
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня ваш скрипт работает. У вас с локальным файлом тоже. Значит дело не в MSSQL.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939374
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryЗначит дело не в MSSQL.
То что код на TSQL правильный я поняла, когда с локальным файлом эксперементировала. А что тогда еще может быть? Если не SQL, куда еще смотреть? Есть ли возможность явно прописать на какой сайт можно лезть серверу (или usery на unix'овой проксе?)
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32939435
dobalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Че-то непонятно, пробовали ли вы запускать службу MSSQL под другой учетной записью?
Войдите в Administrative Tools -> Services. Затем правой на сервисе MSSQL, закладка LOG On и поставьте не local system, как например по умолчанию стоит, а другой аккаунт.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32940151
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dobalexЧе-то непонятно, пробовали ли вы запускать службу MSSQL под другой учетной записью?

Да, пробовала. Процедура отрабатывает без ошибок, но данных не возвращает :-((( , ошибку правда тоже :-))) Тут не в учетной записи по-моему беда, а в том что у нас комп пускается в инет по IP вне зависимости от того кто и с какой учетной записью работает. Как лезет в инет SQL server?
Попробовала создать DTS пакет с источником DTS на xml файл:

New Connection............ConnName
Data source..................HTML file source
File name.....................http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=01/03/2005&date_req2=01/03/2005&VAL_NM_RQ=R01235
User name
Password

1. Вначале поставила: User name и пароль от учетной записи Windows, получила ошибку:
Error source: Microsoft Jet Database Engine
Error description: Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.
2. Запускаю под учетной записью SQL server - та же ошибка.
3. Дальше попробовала запустить без user name и пароля. Ошибка:
Error source: Microsoft Jet Database Engine
Error description: Обновление невозможно. База данных или объект доступны только для чтения.
Может инет на sql server'е настроить можно? В смысле доступ?
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32940234
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут не в учетной записи по-моему беда, а в том что у нас комп пускается в инет по IP вне зависимости от того кто и с какой учетной записью работает. Как лезет в инет SQL server?

Лезет также как и вы. Проверяйте на вашем файерволе куда и как он полез

Попробовала создать DTS пакет с источником DTS на xml файл:

New Connection............ConnName
Data source..................HTML file source
File name.....................http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=01/03/2005&date_req2=01/03/2005&VAL_NM_RQ=R01235
User name
Password


HTML file source работает только с файлом на диске. С URL-ми не работает.
...
Рейтинг: 0 / 0
Импорт курсов валют
    #32940313
Полина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Логи на прокси:

Если через IE:
1109742265.548 51 193.142.107.138 TCP_MISS/200 584 GET http://www.cbr.ru/scr
ipts/XML_dynamic.asp? - DIRECT/212.40.192.49 text/xml


Если через MS SQL:
1109747386.359 4 193.142.107.138 TCP_MISS/000 0 GET http://www.cbr.ru/scrip
ts/XML_dynamic.asp? - NONE/- -
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Импорт курсов валют
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]