Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Загрузка xml с удаленного ресурса   Найти похожие ветки 

 
alsov ©   (2006-10-26 10:28) [0]

Приветствую, Мастера

Есть некий xml файл, который отдает http сервер.

Нужно сделать выборку из его и сформировать resultset.

Как получить из xml выборку я разобрался. Делаю так:

begin
 DECLARE @idoc int
 EXEC sp_xml_preparedocument @idoc OUTPUT, "
<?xml version="1.0" encoding="Windows-1251" ?>
<root>
 <tag value="Value1" date="2006-10-25" time="17:04:19" />
 <tag value="Value2" date="2006-10-25" time="17:04:19" />
 <tag value="Value3" date="2006-10-25" time="17:04:19" />
 <tag value="Value4" date="2006-10-25" time="17:04:19" />
 <tag value="Value5" date="2006-10-25" time="17:04:19" />
</root>"
 SELECT *
 FROM OPENXML (@idoc, "/root/tag",1)
         WITH (value  varchar(15),
               date varchar(20),
               time varchar(20)
               )

 EXEC sp_xml_removedocument @iDoc
end


Но как вместо строки запихнуть урл на xml ума не приложу.

Заранее спасибо за любую помощь


 
alsov ©   (2006-10-26 15:22) [1]

Все разобрался сам
Нашел процедуру

CREATE PROCEDURE LoadXMLFromFile
(
@tcFileNameVARCHAR(255),
@tcXMLStringVARCHAR(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


Все равно не решило проблемы. Но я думаю что решения её в mssql нет вообще.

Первая проблема (скорее самая важная) - невозможно из этого кода сделать вьюху(или функцию) и обращаться в xml как к таблице.
Вторая - проблема xml большого размера. Очень негативно влияет на производительность.



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.012 c
2-1166687132
Клара
2006-12-21 10:45
2007.01.14
DBChart


2-1166796734
Ega23
2006-12-22 17:12
2007.01.14
Может ли функция от интерфейса быть виртуальной?


11-1143315416
Godness
2006-03-25 22:36
2007.01.14
Как избавится от мерцация формы при добавлении строк в Memo?


1-1164337278
UserControl
2006-11-24 06:01
2007.01.14
Список фреймов / панелей


1-1163952134
Calibr
2006-11-19 19:02
2007.01.14
Ассоциирование файла с программой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский