Brock - I got those values from the built-in recordset class; it returns DatabaseField objects which have a "Value" property which returns a variant.
I think the issue is the date data has the wrong byte order (it’s little-endian vs. big-endian or vice versa); if this is the case, then you could probably extend DatabaseField to have a "FixedDate" method which puts the native value in a memory block, fixes it’s byte-order, and then converts the corrected data back into a date object and returns it.
Then you’d call
someDate = rs.field("my_date_field").FixedDate
someDate = rs.field("my_date_field").DateValue
I haven’t had the time to look into this issue more deeply, and I’m not and expert at working with binary data so this is all "best guess".
I know Dave is pretty proficient with binary data operations, so he may be able to verify or torpedo my conjecture about this being a byte order issue with the returned data from Xojo’s ODBC plugin.