Varbinary和图像转换
问题描述:
我有一个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
垃圾字符出来。
答
输出取决于存储的数据和适当的转换。
如果存储的数据是二进制例如转换为文本的位图将永远不会提供可用的结果。
如果存储的数据是文本,它可能是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
hhhmmm,这似乎没有工作。 – user2356494 2013-05-07 22:32:33
这里是数据的一个示例: – user2356494 2013-05-07 22:32:48
010B0000002D01004010000000002E010040102705000030010040182C050000122720400840050000D52720403044050000D52B20405C45050000FF2F20401409060000113020405C77060000C8312040587B060000CA312040587F060000010020411083060000416E2065636F6E6F6D6963207265736F75726365207468 – user2356494 2013-05-07 22:33:06