2013-05-07 114 views
0

我有一個Access前端鏈接到SQL Server後端。Varbinary和圖像轉換

有一個表中3場,我想轉換從後端到文本:

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

我可以使用o_name字段轉換:

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

和工作正常。

e.g. 4153534554 = ASSET 

不過,我可以用另外兩個領域,因爲它似乎我無法將圖像轉換領域和轉換O_PropertyBinary1垃圾字符出來。

回答

0

輸出取決於存儲的數據和適當的轉換。
如果存儲的數據是二進制例如轉換爲文本的位圖將永遠不會提供可用的結果。
如果存儲的數據是文本,它可能是Varchar或NVarchar,類型轉換取決於。

在下面VC_VB2NVarchar和VC_IMG2NVarchar的例子會顯示您的描述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,這似乎沒有工作。 – user2356494 2013-05-07 22:32:33

+0

這裏是數據的一個示例: – user2356494 2013-05-07 22:32:48

+0

010B0000002D01004010000000002E010040102705000030010040182C050000122720400840050000D52720403044050000D52B20405C45050000FF2F20401409060000113020405C77060000C8312040587B060000CA312040587F060000010020411083060000416E2065636F6E6F6D6963207265736F75726365207468 – user2356494 2013-05-07 22:33:06