2010-02-23 6 views
0

Quand je fais une instruction select pour le champ varbinary dans le gestionnaire d'entreprise Microsoft que je reçois le terrain sur le format hexadécimal readabel comme ab2c2f2d ... mais quand je fais la même statment avec pymssql je reçois un gibrishpython et sql server

l'instruction select est: sélectionnez x dans la table - où x le champ varbinary

Quelqu'un pourrait-il aider à résoudre ce problème?

+0

Vous n'obtenez pas un "gibrish", vous obtenez les données binaires brutes. – voyager

+0

Mais comment je peux le convertir en format hexadécimal comme ce qui est montré dans Microsoft Enterprise Manager – dan

Répondre

2

Microsoft Enterprise Manager convertit la valeur binaire en une chaîne hexadécimale pour vous.

Une option consiste à modifier votre requête pour sélectionner la table FROM CAST (x AS varchar) FROM. Cela aura SQL Server convertir le varbinary en une chaîne hexadécimale pour vous, http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx

Une autre option consiste à utiliser le module python, binascii pour convertir les données binaires en une chaîne hexadécimale vous-même. Vous utilisez les fonctions binascii.b2a_hex (data) ou binascii.hexlify (data) pour ce faire.