SQL Server
SQL Server
Demonstrate Binary Data Encoding Methods
Demonstrates binary data encoding methods.Note: This example requires Chilkat v9.5.0.64 or later.
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
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @binData int
EXEC @hr = sp_OACreate 'Chilkat.BinData', @binData OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Append 10 bytes: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09
DECLARE @success int
EXEC sp_OAMethod @binData, 'AppendEncoded', @success OUT, '00010203040506070809', 'hex'
-- Show that binData contains 10 bytes.
EXEC sp_OAGetProperty @binData, 'NumBytes', @iTmp0 OUT
PRINT 'num bytes = ' + @iTmp0
-- Get as base64
EXEC sp_OAMethod @binData, 'GetEncoded', @sTmp0 OUT, 'base64'
PRINT 'base64: ' + @sTmp0
-- Get a chunk of the binary data.
-- The 1st byte is at index 0.
-- The output should be "02030405"
DECLARE @offset int
SELECT @offset = 2
DECLARE @numBytes int
SELECT @numBytes = 4
EXEC sp_OAMethod @binData, 'GetEncodedChunk', @sTmp0 OUT, @offset, @numBytes, 'hex'
PRINT 'chunk: ' + @sTmp0
-- Copy the bytes to a StringBuilder using the base64url encoding
DECLARE @sb int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT
EXEC sp_OAMethod @binData, 'GetEncodedSb', @success OUT, 'base64url', @sb
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT 'base64url: ' + @sTmp0
-- Remove a chunk from the binary data
SELECT @offset = 2
SELECT @numBytes = 4
EXEC sp_OAMethod @binData, 'RemoveChunk', @success OUT, @offset, @numBytes
-- The bytes remaining are 00,01,06,07,08,and 09
EXEC sp_OAMethod @binData, 'GetEncoded', @sTmp0 OUT, 'hex'
PRINT 'after removing chunk: ' + @sTmp0
EXEC @hr = sp_OADestroy @binData
EXEC @hr = sp_OADestroy @sb
END
GO