SQL Server
SQL Server
UN/EDIFACT Syntax Level A Encoding/Decoding
See more Encryption Examples
Demonstrates the new "eda" encoding that can be used throughout Chilkat starting in v9.5.0.65.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
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- Note: Requires Chilkat v9.5.0.65 or greater.
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, 'The 5 men of 223rd St'
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
-- Encode the utf-8 byte representation of the string in the
-- UN/EDIFACT syntax level A character set.
EXEC sp_OAMethod @sb, 'Encode', @success OUT, 'eda', 'utf-8'
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
-- EDA Output should be: BTME027FCF6CFARFI94JT6.)F(14KJ2U
-- Decode back to the original string.
EXEC sp_OAMethod @sb, 'Decode', @success OUT, 'eda', 'utf-8'
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
PRINT '----'
-- The following requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- The "eda" encoding can be used anywhere within Chilkat.
-- For example, with the Crypt2 API
DECLARE @crypt int
EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
EXEC sp_OASetProperty @crypt, 'CryptAlgorithm', 'aes'
EXEC sp_OASetProperty @crypt, 'CipherMode', 'cbc'
EXEC sp_OASetProperty @crypt, 'KeyLength', 256
EXEC sp_OASetProperty @crypt, 'EncodingMode', 'eda'
DECLARE @ivHex nvarchar(4000)
SELECT @ivHex = '000102030405060708090A0B0C0D0E0F'
EXEC sp_OAMethod @crypt, 'SetEncodedIV', NULL, @ivHex, 'hex'
DECLARE @keyHex nvarchar(4000)
SELECT @keyHex = '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'
EXEC sp_OAMethod @crypt, 'SetEncodedKey', NULL, @keyHex, 'hex'
DECLARE @encStr nvarchar(4000)
EXEC sp_OAMethod @crypt, 'EncryptStringENC', @encStr OUT, 'The quick brown fox jumps over the lazy dog.'
-- The output is UN/EDIFACT syntax level A
PRINT @encStr
-- Now decrypt:
DECLARE @decStr nvarchar(4000)
EXEC sp_OAMethod @crypt, 'DecryptStringENC', @decStr OUT, @encStr
PRINT @decStr
EXEC @hr = sp_OADestroy @sb
EXEC @hr = sp_OADestroy @crypt
END
GO