SQL Server
SQL Server
Xml.UpdateAttrAt Example #2
Another Xml.UpdateAttrAt example...Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @xml int
EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OASetProperty @xml, 'Tag', 'abc'
DECLARE @sbValue int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbValue OUT
DECLARE @i int
SELECT @i = 0
WHILE @i < 10
BEGIN
EXEC sp_OASetProperty @xml, 'I', @i
EXEC sp_OAMethod @sbValue, 'Clear', NULL
DECLARE @success int
EXEC sp_OAMethod @sbValue, 'AppendInt', @success OUT, @i
EXEC sp_OAMethod @sbValue, 'GetAsString', @sTmp0 OUT
EXEC sp_OAMethod @xml, 'UpdateAttrAt', @success OUT, 'xyz|test[i]', 1, 'index', @sTmp0
SELECT @i = @i + 1
END
EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
-- Output is:
-- <?xml version="1.0" encoding="utf-8" ?>
-- <abc>
-- <xyz>
-- <test index="0" />
-- <test index="1" />
-- <test index="2" />
-- <test index="3" />
-- <test index="4" />
-- <test index="5" />
-- <test index="6" />
-- <test index="7" />
-- <test index="8" />
-- <test index="9" />
-- </xyz>
-- </abc>
EXEC @hr = sp_OADestroy @xml
EXEC @hr = sp_OADestroy @sbValue
END
GO