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) Serialize / Deserialize Hashtable to/from XMLDemonstrates how to seralize / deserialize a Hashtable to/from XML. Note: This example requires Chilkat v9.5.0.64 or later.
-- 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) -- Note: This example requires Chilkat v9.5.0.64 or later. -- Add some entries to a hashtable. DECLARE @hashTab int -- Use "Chilkat_9_5_0.Hashtable" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Hashtable', @hashTab OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @hashTab, 'AddStr', @success OUT, 'aaa', '111' EXEC sp_OAMethod @hashTab, 'AddStr', @success OUT, 'bbb', '222' EXEC sp_OAMethod @hashTab, 'AddStr', @success OUT, 'ccc', '333' -- Serialize to XML DECLARE @sb int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT EXEC sp_OAMethod @hashTab, 'ToXmlSb', @success OUT, @sb EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT PRINT @sTmp0 PRINT '---' -- The output is as follows. Each hash table entry -- is contained in an "e" node. The entry's key -- is in the "k" node, and the value in the "v" node. -- <?xml version="1.0" encoding="utf8-8"?> -- <hashtable> -- <e><k>aaa</k><v>111</v></e> -- <e><k>bbb</k><v>222</v></e> -- <e><k>ccc</k><v>333</v></e> -- </hashtable> -- -- Now load (deserialize) into a new hash table. DECLARE @hashTab2 int -- Use "Chilkat_9_5_0.Hashtable" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Hashtable', @hashTab2 OUT EXEC sp_OAMethod @hashTab2, 'AddFromXmlSb', @success OUT, @sb -- Get the hash table keys, and lookup each (to show -- that the hash table was correctly deserialized). -- The GetKeys method can return the keys in any order. DECLARE @sTable int -- Use "Chilkat_9_5_0.StringTable" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringTable', @sTable OUT EXEC sp_OAMethod @hashTab2, 'GetKeys', @success OUT, @sTable DECLARE @i int SELECT @i = 0 DECLARE @numKeys int EXEC sp_OAGetProperty @sTable, 'Count', @numKeys OUT WHILE @i < @numKeys BEGIN DECLARE @key nvarchar(4000) EXEC sp_OAMethod @sTable, 'StringAt', @key OUT, @i EXEC sp_OAMethod @hashTab2, 'LookupStr', @sTmp0 OUT, @key PRINT @key + ': ' + @sTmp0 SELECT @i = @i + 1 END EXEC @hr = sp_OADestroy @hashTab EXEC @hr = sp_OADestroy @sb EXEC @hr = sp_OADestroy @hashTab2 EXEC @hr = sp_OADestroy @sTable END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.