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) Compress Bytes to Base64 (or any other encoding)Compresses bytes to base64 or any other encoding. Also decompress to return the original.
-- 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) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @success int -- First create some binary data to compress. DECLARE @binData int -- Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.BinData', @binData OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @i int SELECT @i = 1 WHILE @i <= 16 BEGIN EXEC sp_OAMethod @binData, 'AppendEncoded', @success OUT, '000102030405060708090A0B0C0D0E0F', 'hex' SELECT @i = @i + 1 END DECLARE @compress int -- Use "Chilkat_9_5_0.Compression" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Compression', @compress OUT EXEC sp_OASetProperty @compress, 'Algorithm', 'deflate' EXEC sp_OASetProperty @compress, 'EncodingMode', 'base64' EXEC sp_OAMethod @binData, 'GetBinary', @uncompressedBytes OUT -- Compress and return the compressed bytes in base64 format. DECLARE @compressedBase64 nvarchar(4000) EXEC sp_OAMethod @compress, 'CompressBytesENC', @compressedBase64 OUT, @uncompressedBytes PRINT 'compressed and base64 encoded: ' + @compressedBase64 -- Compress and return in hex format: EXEC sp_OASetProperty @compress, 'EncodingMode', 'hex' DECLARE @compressedHex nvarchar(4000) EXEC sp_OAMethod @compress, 'CompressBytesENC', @compressedHex OUT, @uncompressedBytes PRINT 'compressed and hex encoded: ' + @compressedHex -- Now decompress.. DECLARE @binData2 int -- Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.BinData', @binData2 OUT -- Decompress the base64.. EXEC sp_OASetProperty @compress, 'EncodingMode', 'base64' EXEC sp_OAMethod @compress, 'DecompressBytesENC', @uncompressedBytes OUT, @compressedBase64 EXEC sp_OAMethod @binData2, 'AppendBinary', @success OUT, @uncompressedBytes -- Show the uncompressed bytes in hex format: EXEC sp_OAMethod @binData2, 'GetEncoded', @sTmp0 OUT, 'hex' PRINT @sTmp0 PRINT '--' -- Decompress the hex.. EXEC sp_OASetProperty @compress, 'EncodingMode', 'hex' EXEC sp_OAMethod @compress, 'DecompressBytesENC', @uncompressedBytes OUT, @compressedHex EXEC sp_OAMethod @binData2, 'Clear', @success OUT EXEC sp_OAMethod @binData2, 'AppendBinary', @success OUT, @uncompressedBytes -- Show the uncompressed bytes in hex format: EXEC sp_OAMethod @binData2, 'GetEncoded', @sTmp0 OUT, 'hex' PRINT @sTmp0 PRINT '--' EXEC @hr = sp_OADestroy @binData EXEC @hr = sp_OADestroy @compress EXEC @hr = sp_OADestroy @binData2 END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.