@id int, @content image , @gamename varchar(200) AS BEGIN declare @temp varbinary(500) declare @tmpid int =-1 declare @sql varchar(500) print @tmpid select @tmpid=id from dbo.ActivityPlayers where id=@id print @tmpid if @tmpid =-1 begin insert into dbo.ActivityPlayers (id) values(@id) end set @temp=CONVERT(varbinary(500),@content) set @sql='update dbo.ActivityPlayers set '+@gamename+'='+CONVERT(varchar(1000), @temp)+' where id='+convert(varchar(20),@id) print @sql exec(@sql) END
各位大侠给看看哪里写错了
image 能不能这样转
还是我给的范围小了 。不太懂二进制数据转字符串后的长度
不能这么转换
高人,那怎么转合适,能给个例子吗 就是在存储过程了把image转成varchar存字符串 或者直接存二进制数据
@糯米团子滚呀滚: 建议数据库字段直接使用image
类型
@dudu: 主要是我要修改的字段名是传参进来的,所以语句用用string包一下再执行, 然而里面不能直接加image类型 才转的
declare @tmpid int =-1 declare @sql varchar(500) select @tmpid=id from dbo.ActivityPlayers where id=@id print @tmpid if @tmpid =-1 begin insert into dbo.ActivityPlayers (id) values(@id) end set @sql='update ActivityPlayers set '+@gamename+'='''+@content+''' where id ='+convert(varchar(20),@id) exec(@sql)
已解决 赋上代码 ,在前台将二进制数据转成varchar,读出时解析
ActivityPlayers 表中对应的字段类型是什么?
– dudu 6年前@dudu: 就是varchar(1000)
– 糯米团子滚呀滚 6年前