我在 Ubuntu 12.04 上使用 pypyodbc 和 Python 3.4。
我正在尝试获取列名,但有些不稳定。返回的只是作为字节的第一个字符,如下所示:
(Pdb) Cname.value
b'T'
幕后的东西是一个 ctypes char 数组:
(Pdb) Cname
<ctypes.c_char_Array_1024 object at 0xb6a1ad1c>
但是,如果我查看原始值:
(Pdb) Cname.raw
b'T\x00Y\x00P\x00E\x00_\x00N\x00A\x00M\x00E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
您可以看到该值由 .TYPE_NAME
分隔\x00
。
所以在我看来,正在发生的事情是(ctypes?)首先将其读取\x00
为字符串的空终止符,而不是部分字符。
我可以做些什么来修改 ctypes 的使用方式,以便它可以读取整个字符串?其他一切似乎都可以正常工作,只是描述不可靠。