首页 新闻 会员 周边 捐助

SqlServer delphi执行存储过程报错

0
悬赏园豆:10 [待解决问题]
     @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 能不能这样转

还是我给的范围小了 。不太懂二进制数据转字符串后的长度

糯米团子滚呀滚的主页 糯米团子滚呀滚 | 初学一级 | 园豆:163
提问于:2018-03-30 10:43

ActivityPlayers 表中对应的字段类型是什么?

dudu 6年前

@dudu: 就是varchar(1000)

糯米团子滚呀滚 6年前
< >
分享
所有回答(2)
0

不能这么转换

dudu | 园豆:30778 (高人七级) | 2018-03-30 13:07

高人,那怎么转合适,能给个例子吗 就是在存储过程了把image转成varchar存字符串 或者直接存二进制数据

支持(0) 反对(0) 糯米团子滚呀滚 | 园豆:163 (初学一级) | 2018-03-30 13:15

@糯米团子滚呀滚: 建议数据库字段直接使用image类型

支持(0) 反对(0) dudu | 园豆:30778 (高人七级) | 2018-03-30 13:40

@dudu: 主要是我要修改的字段名是传参进来的,所以语句用用string包一下再执行, 然而里面不能直接加image类型 才转的

支持(0) 反对(0) 糯米团子滚呀滚 | 园豆:163 (初学一级) | 2018-03-30 13:43
0
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,读出时解析

糯米团子滚呀滚 | 园豆:163 (初学一级) | 2018-04-03 11:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册