create proc pro_MepictureUpdate
@MeId                          int,
@MeName                varchar(20),--商品名称
@MeSpeci               varchar(20),--规格
@MeImages              varchar(50),--商品图片
@MeIntroe              varchar(500),--商品介绍
@ReturnInt             varchar(50) output--存储过程返回值
as
begin
set @ReturnInt = (select MeImages from tb_Mepicture where MeId = @MeId)
update tb_Mepicture set MeName = @MeName,MeSpeci = @MeSpeci,MeImages = @MeImages,MeIntroe = @MeIntroe
where MeId = @MeId
end我是想修改图片资料 在程序里修改图片也就是删除图片重新上传一张 
返回查询后的图片名称返回后台进行删除 不知道 这样返回是否可以?请教!

解决方案 »

  1.   

    select @ReturnInt = MeImages from tb_Mepicture where MeId = @MeId这样就行了,执行时候declare @ReturnInt varchar(50)
    exec 过程名 参数1,参数2...@ReturnInt output
    select @ReturnInt
      

  2.   


    我一小时的沉痛代价换来的教训:output只能返回一个长度的参数
      

  3.   

    楼上的意思就是说 output只能返回整型吗?
      

  4.   

    再向大家请教个问题 在删除一个商家的时候同时删除对应商家的多个商品图片 
    意思就是说我想把一个商家对应的商品图片全查出来以数组的形式返回后台进行删除 这样应该怎么做到请教!数据库有数组这个定义吗?
    偶基础差 大家别见笑 呵呵!
    create proc pro_ManagementDelete
    @MaId                        int
    as
    begin
    .....不知道怎么写了
    delete tb_Mepicture where Mepicture_MaId = @MaId --多个商家对应的图片delete tb_Management where MaId = @MaId --商家表
    end
      

  5.   

    没有数组,可以把所有图片地址用|或,等连接起来,或这直接select 查询一下,前台处理
      

  6.   

    varchar可以返回的,
    我经常这样定义过程create procedure sp_test
         @id integer,
         @error_info varchar(200) output,
         @error_no int output
    as 
    ................go
      

  7.   

    不好意思,收回刚才我的话,output 可以返回varchar(长度)类型的参数create procedure prco_output
    @n nvarchar(256),
    @oo nvarchar(256) output
    as
    begin
    set @oo = @n
    print @oo
    print @n
    end
    godeclare @oo nvarchar(256)
    exec prco_output @n='sdfsafsdfsd',@oo = @oo output
    select @oo
    /*
    ------------------------
    sdfsafsdfsd(1 row(s) affected)
    */
      

  8.   


    可以返回一个datatable 在逐行读取数据到一个数组不就行了,
    数据库操作思想是以“数据集”为单位,
    数组还是过程编程的思想。