SQL Server
SQL Server
Benefit of XML Methods Having Names Ending in "2"
See more XML Examples
The Chilkat XML methods having names ending with "2" update the internal reference rather than return a new XML object instance. See the example below..Note: There are a few methods, such as LoadXml2, where the "2" simply indicates the method is the same but has an additional argument. (There are some programming environments where overloading methods is not allowed. Therefore, Chilkat will avoid providing methods having the same name but with different arguments.)
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 @success int
SELECT @success = 0
DECLARE @x nvarchar(4000)
SELECT @x = '<test><abc><xyz>123</xyz></abc></test>'
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_OAMethod @xml, 'LoadXml', @success OUT, @x
-- First demonstrate getting "123" in the simplest way:
EXEC sp_OAMethod @xml, 'ChilkatPath', @sTmp0 OUT, 'abc|xyz|*'
PRINT @sTmp0
-- Now demonstrate navigating to the "xyz" node using non-"2" methods.
-- The following few lines of code create two object instances, which will need
-- to be deleted or garbage collected.
DECLARE @xAbc int
EXEC sp_OAMethod @xml, 'FindChild', @xAbc OUT, 'abc'
DECLARE @xXyz int
EXEC sp_OAMethod @xAbc, 'FindChild', @xXyz OUT, 'xyz'
EXEC sp_OAGetProperty @xXyz, 'Content', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @xXyz
EXEC @hr = sp_OADestroy @xAbc
-- Now demonstrate navigating to the "xyz" node using the "2" methods.
-- No object instances are created.
EXEC sp_OAMethod @xml, 'FindChild2', @success OUT, 'abc'
EXEC sp_OAMethod @xml, 'FindChild2', @success OUT, 'xyz'
EXEC sp_OAGetProperty @xml, 'Content', @sTmp0 OUT
PRINT @sTmp0
-- Restore xml back to the root of the document.
EXEC sp_OAMethod @xml, 'GetRoot2', NULL
EXEC @hr = sp_OADestroy @xml
END
GO