Sample code for 30+ languages & platforms
SQL Server

StringBuilder Encode

Demonstrates the Chilkat StringBuilder Encode method.

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 @s nvarchar(4000)
    SELECT @s = 'The quick brown fox jumps over the lazy dog'

    DECLARE @sb int
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int
    EXEC sp_OAMethod @sb, 'Append', @success OUT, @s

    -- output: The quick brown fox jumps over the lazy dog
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    EXEC sp_OAMethod @sb, 'Encode', @success OUT, 'base64', 'utf-8'

    -- output: VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZw==
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    EXEC sp_OAMethod @sb, 'Decode', @success OUT, 'base64', 'utf-8'
    -- output: The quick brown fox jumps over the lazy dog
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    -- Now encode to hex..
    EXEC sp_OAMethod @sb, 'Encode', @success OUT, 'hex', 'utf-8'
    -- output: 54686520717569636B2062726F776E20666F78206A756D7073206F76657220746865206C617A7920646F67
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    EXEC sp_OAMethod @sb, 'Decode', @success OUT, 'hex', 'utf-8'
    -- URL encode
    EXEC sp_OAMethod @sb, 'Encode', @success OUT, 'url', 'utf-8'
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    EXEC sp_OAMethod @sb, 'Decode', @success OUT, 'url', 'utf-8'
    -- base64url
    EXEC sp_OAMethod @sb, 'Encode', @success OUT, 'base64url', 'utf-8'
    EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
    PRINT @sTmp0

    -- other possible encodings include modbase64, base32, base58, quoted-printable, url_rfc1738, url_rfc2396, url_rfc3986, and fingerprint

    EXEC @hr = sp_OADestroy @sb


END
GO