2013-05-07 3 views
0

J'ai un frontal d'accès qui lie à un backend SQL Server.Conversion Varbinary et image

Il y a 3 champs dans une table que je suis en train de convertir en texte à partir du back-end:

o_name    varbinary(2000) 
O_PropertyBinary1  varbinary(2000) 
O_PropertyBinary2  image 

je peux convertir le champ o_name en utilisant:

convert(varchar([max]),[O_Name]) 

et qui fonctionne très bien.

e.g. 4153534554 = ASSET 

Cependant, ce que je peux utiliser pour les deux autres domaines, comme il semble que je ne peux pas convertir un champ d'image et la conversion de l'O_PropertyBinary1 sort avec des personnages de déchets.

Répondre

0

La sortie est dépendante des données stockées et de la conversion appropriée.
Si les données stockées sont binaires, par ex. Bitmaps, la conversion au texte ne donnera jamais un résultat utilisable.
Si les données stockées sont du texte, cela peut être Varchar ou NVarchar et la conversion de type dépend.

dans l'exemple ci-dessous VC_VB2NVarchar et VC_IMG2NVarchar afficherait vos décrits garbage characters

Declare @tab Table(nvc NVarchar(100),vc Varchar(100) 
,img image,vb VarBinary(200),img2 image,vb2 VarBinary(200)) 
Insert into @tab (nvc,vc) Values ('123456789','123456789') 

Update @tab set vb=Convert(VarBinary(200),nvc),img=Convert(Image,Convert(Varbinary(max),nvc)) 
       ,vb2=Convert(VarBinary(200),vc),img2=Convert(Image,Convert(Varbinary(max),vc)) 
Select nvc,vc 
     ,CONVERT(Nvarchar(100),vb) as NVC_VB2NVarchar 
     ,CONVERT(Varchar(200),vb) as NVC_VB2Varchar 
     ,CONVERT(Nvarchar(100),Convert(VarBinary(max),img)) as NVC_IMG2NVarchar 
     ,CONVERT(Varchar(200),Convert(VarBinary(max),img)) as NVC_IMG2Varchar 
     ,CONVERT(Nvarchar(100),vb2) as VC_VB2NVarchar 
     ,CONVERT(Varchar(200),vb2) as VC_VB2Varchar 
     ,CONVERT(Nvarchar(100),Convert(VarBinary(max),img2)) as VC_IMG2NVarchar 
     ,CONVERT(Varchar(200),Convert(VarBinary(max),img2)) as VC_IMG2Varchar 

from @Tab  
+0

hhhmmm, qui ne marche pas semblent fonctionner. – user2356494

+0

ici est un exemple des données: – user2356494

+0

010B0000002D01004010000000002E010040102705000030010040182C050000122720400840050000D52720403044050000D52B20405C45050000FF2F20401409060000113020405C77060000C8312040587B060000CA312040587F060000010020411083060000416E2065636F6E6F6D6963207265736F75726365207468 – user2356494

Questions connexes