Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Benefit of XML Methods Having Names Ending in "2"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.)
-- 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 @x nvarchar(4000) SELECT @x = '<test><abc><xyz>123</xyz></abc></test>' DECLARE @xml int -- Use "Chilkat_9_5_0.Xml" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int 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 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.