Sample code for 30+ languages & platforms
SQL Server

Append Big-Endian or Little-Endian Integers

Demonstrates how to append integers in big-endian or little-endian byte order to a BinData.

Note: This example requires Chilkat v9.5.0.77 or greater.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

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

    --  The hex value of decimal 123456789 is 0x075BCD15
    DECLARE @x int
    SELECT @x = 123456789

    --  Appending little-endian causes bytes to be
    --  appended in the order 0x15, 0xCD, 0x5B, 0x07
    DECLARE @littleEndian int
    SELECT @littleEndian = 1
    EXEC sp_OAMethod @bd, 'AppendInt4', @success OUT, @x, @littleEndian

    EXEC sp_OAMethod @bd, 'GetEncoded', @sTmp0 OUT, 'hex'
    PRINT @sTmp0
    --  Output is: 15CD5B07

    --  Now append the same integer in big-endian byte order.
    --  Appending bit-endian causes bytes to be
    --  appended in the order 0x07, 0x5B, 0xCD, 0x15
    SELECT @littleEndian = 0
    EXEC sp_OAMethod @bd, 'AppendInt4', @success OUT, @x, @littleEndian

    EXEC sp_OAMethod @bd, 'GetEncoded', @sTmp0 OUT, 'hex'
    PRINT @sTmp0
    --  bd now contains: 15CD5B07075BCD15

    --  -------------------------------------------
    --  Now do the same thing with 16-bit integers
    EXEC sp_OAMethod @bd, 'Clear', @success OUT

    --  1234 decimal = 0x04D2 hex.
    SELECT @x = 1234

    SELECT @littleEndian = 1
    EXEC sp_OAMethod @bd, 'AppendInt2', @success OUT, @x, @littleEndian

    EXEC sp_OAMethod @bd, 'GetEncoded', @sTmp0 OUT, 'hex'
    PRINT @sTmp0
    --  Output is: D204

    SELECT @littleEndian = 0
    EXEC sp_OAMethod @bd, 'AppendInt2', @success OUT, @x, @littleEndian

    EXEC sp_OAMethod @bd, 'GetEncoded', @sTmp0 OUT, 'hex'
    PRINT @sTmp0
    --  Output is now: D20404D2

    EXEC @hr = sp_OADestroy @bd


END
GO