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