Скрипт для загрузки из Интернет курсов валюты в базу Используем технологию Windows Script Host (WSH) Курс получаем с сайта Центрального банка.
Скрипт для загрузки из Интернет курсов валюты в базу Используем технологию Windows Script Host (WSH) Курс получаем с сайта Центрального банка. Все подробности тут http://www.cbr.ru/scripts/Root.asp
В блокноте создаем файл с данным кодом.
'*********************************************** ' Cкрипт загрузки из Интернета курса валют ' в базу Лизинг ' Версия ae 1.03.050919 ''***********************************************
Option Explicit
On Error Resume Next
Public FSO Dim WshShell, WshNetwork Dim objConn, objRst, xmlDoc, node_List, xmlNode, node_Attr Dim strArrayType, strType, strConnect, strUserName, strSQL Dim url_Request Dim intValType, dtmBegDate, intIndex
Set WshShell = CreateObject("WScript.Shell") Set WshNetwork = CreateObject("WScript.Network")
' Делаем отчет в журнале WshShell.LogEvent 4, "Старт скрипта загрузки курсов валют из ИНТЕРНЕТ'а - " & Now
For Each strType In strArrayType strSQL = "SELECT MAX(Start) As MaxDate FROM dbo.ValutaRate GROUP BY Valuta1 HAVING Valuta1 = " & intValType
Set objRst = objConn.Execute(strSQL) dtmBegDate = objRst.Fields("MaxDate")
If (dtmBegDate <> Date + 1) And (Weekday(Date, 2) < 6) Then ' Создаем экземпляр объекта - XML парзера Set xmlDoc = CreateObject("Msxml.DOMDocument") xmlDoc.async = False url_Request = "http://www.cbr.ru/scripts/XML_dynamic.asp?" & _ "date_req1=" & FormatFromDateInString(dtmBegDate + 1, "dd/mm/yyyy") & _ "&date_req2=" & FormatFromDateInString(Date + 1, "dd/mm/yyyy") & _ "&VAL_NM_RQ=" & strType ' загружаем документ по url If Not xmlDoc.Load(url_Request) = True Then WshShell.LogEvent 1, "Отсутствует подключение к ИНТЕРНЕТ ": WScript.Quit Set node_List = xmlDoc.selectNodes("*/Record") ' цикл по результирующему набору For intIndex = 0 To node_List.Length - 1 Set xmlNode = node_List.Item(intIndex).CloneNode(True) Set node_Attr = xmlNode.Attributes(0) ' Заносим курс в базу objConn.Execute "INSERT INTO ValutaRates (Start, Valuta1, Valuta2, Rate, CrWhen, CrWho) " & _ "VALUES (" & FormatFromDateInString(CDate(node_Attr.Value), "'yyyymmdd'") & _ ", " & CInt(intValType) & ", 1, " & _ Replace(xmlNode.childNodes(1).Text, ",", ".") & ", getdate(), 'script')" If Err.Number > 0 Then WshShell.LogEvent 1, "Error # " & CStr(Err.Number) & " " & Err.Description Err.Clear Next End If intValType = intValType + 1 Next
Set node_Attr = Nothing Set xmlNode = Nothing Set node_List = Nothing Set xmlDoc = Nothing
objConn.Close Set objConn = Nothing
Set WshNetwork = Nothing
WshShell.LogEvent 0, "Скрипт загрузки курсов валют из ИНТЕРНЕТ'а закончил работу " & Now
Set WshShell = Nothing
'================================= ' Функция форматирует дату в строковой тип '================================= Function FormatFromDateInString(dtmDate, strFormat) Dim strDay, strMonth, strYear