Sample code for 30+ languages & platforms
SQL Server

Ascii85 Encoding and Decoding

See more Encryption Examples

Demonstrates ascii85 encoding and decoding.

Note: Requires Chilkat v9.5.0.79 or greater.

Chilkat SQL Server Downloads

SQL Server
-- 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

    -- First demonstrate encoding strings to ascii85 and back.
    DECLARE @sb int
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @sb, 'Append', @success OUT, 'Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.'

    DECLARE @encodedAscii85 nvarchar(4000)
    EXEC sp_OAMethod @sb, 'GetEncoded', @encodedAscii85 OUT, 'ascii85', 'utf-8'

    PRINT @encodedAscii85

    -- Result is: 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4 ... DII?(E,9)oF*2M7/c

    -- Decode back to the original:
    EXEC sp_OAMethod @sb, 'Clear', NULL
    EXEC sp_OAMethod @sb, 'Append', @success OUT, @encodedAscii85
    EXEC sp_OAMethod @sb, 'Decode', @success OUT, 'ascii85', 'utf-8'

    PRINT 'Original:'
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    -- ---- Now encode binary data to ascii85 ----
    DECLARE @bd int
    EXEC @hr = sp_OACreate 'Chilkat.BinData', @bd OUT

    EXEC sp_OAMethod @bd, 'LoadFile', @success OUT, 'qa_data/jpg/starfish20.jpg'
    EXEC sp_OAMethod @bd, 'GetEncoded', @encodedAscii85 OUT, 'ascii85'

    PRINT @encodedAscii85

    -- Result is:  s4IA0!"_al8O`[\!<E0k!([(is8E!F7VQ[M+Eqj?FED)3+C]U=6"Fn ...

    -- Decode...
    EXEC sp_OAMethod @bd, 'Clear', @success OUT
    EXEC sp_OAMethod @bd, 'AppendEncoded', @success OUT, @encodedAscii85, 'ascii85'
    EXEC sp_OAMethod @bd, 'WriteFile', @success OUT, 'qa_output/starfish20.jpg'

    EXEC @hr = sp_OADestroy @sb
    EXEC @hr = sp_OADestroy @bd


END
GO