Dealing with binary data
Contents
Binary data is currently supported for SQL server ODBC connections.
Unique identifier
UUIDs are read from the database as binary data. The following code can be used to convert the binary data into a readable representation:
function binToUUID (Bin) -- Byte ordering for endian conversion local ByteOrdering = { 4, 3, 2, 1, 0, 6, 5, 0, 8, 7, 0, 9, 10, 0, 11, 12, 13, 14, 15, 16 } local OutText = "" for i = 1, #ByteOrdering do local bo = ByteOrdering[i] if bo == 0 then OutText = OutText..'-' else OutText = OutText .. string.format ("%02X", string.byte(Bin,bo)) end end return OutText end
ASCII hex display
The following snippet can be used to convert binary data into a human-readable hex based ASCII:
function binToHex (Bin, RowWidth) local OutText = "" for i = 1, #Bin - 1 do if (i > 1 and RowWidth and (i-1) % RowWidth == 0) then OutText = OutText .. '\n' end OutText = OutText .. string.format ("%02X", string.byte(Bin,i)) .. ' ' end OutText = OutText .. string.format ("%02X", string.byte(Bin,#Bin)) return OutText end
Continue: Trick for surveying a database