У меня есть sql, возвращающий информацию и создающий URL.
SELECT Address,Address2,'https://maps.googleapis.com/maps/api/distancematrix/xml?units=imperial&origins='+Address+'&destinations='+Address2+'&key=xxx' URL
FROM table
И если я возьму созданный выше URL-адрес и скопирую его в браузер, на экране появится нужный XML.Но как я могу иметь XML в SQL, чтобы я мог анализировать только определенные данные, такие как время в пути?
Так что теперь у меня есть следующий код, который предоставляет мне время:
DECLARE @Address0 varchar(100) =null
DECLARE @Address1 varchar(100)=null
SET @Address0 = 'xxx'
SET @Address1 = 'yyy'
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Declare @serviceUrl as varchar(500)
set @serviceUrl = 'https://maps.googleapis.com/maps/api/distancematrix/xml?units=imperial&origins=' +@Address0+
'&destinations=' +@Address1 +'&key=keyfromgoogle'
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
@serviceUrl, --Your Web Service Url (invoked)
'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Declare @Response as XML
SET @Response = CAST(@ResponseText AS XML);
Declare @Time as varchar(20)
Begin
set @Time=@Response.value('(DistanceMatrixResponse/row/element/duration/text)[1]', 'varchar(20)')
End
select
@Time as Time
Итак, я думаю, что я создаю временную таблицу для хранения моих адресов, а затем курсор для просмотра и добавления времени к каждой строке временной таблицы?