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