1

Ubuntu 12.04 で Python 3.4 で pypyodbc を使用しています。

列名を取得しようとしていますが、少し不安定です。戻ってくるのは、次のように、バイトとしての最初の文字だけです。

(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、文字の一部ではなく文字列の null ターミネータとして最初にそれを読み取っているように見えます。

文字列全体を読み取るように ctypes の使用方法を変更するにはどうすればよいですか? 他のすべては正常に動作しているように見えますが、不安定なのは説明だけです。

4

1 に答える 1