messagebox?
print只在查询分析器里能看见打印出的结果,在程序里是捕捉不到的
想得到存储过程返回的值用
select .....来返回查询记录集

解决方案 »

  1.   

    使用select 返回結果..或使用retrun或output
    但不能用print
      

  2.   

    存储过程如果是用print来输出结果,就只能在查询分析器中得到结果.程序中调用是得不到结果的.
      

  3.   

    CREATE PROCEDURE up_dtc_onway_kcyue_zh
    @yue char(7),@gs_userid varchar(10),@p_id varchar(20),@as_error varchar(255) output 
    AS
    ---->取得收数据    
    declare   @ls_p_id varchar(20),@ppm char(2), @dlm1 char(2),@dlm3 char(2),@cpm varchar(20),@ggm char(5),@tjm char(2),@ddh char(12)
    declare  @dj1 decimal(8,2),@dj2 decimal(8,2),@dj3 decimal(8,2),@dwsl decimal(16,0),@f_zhengfu int,@je1 decimal(16,2),@je2 decimal(16,2)
    declare  @ls_v_id varchar(20),@v_name varchar(60),@dlmc1 varchar(20),@dlmc3 varchar(20),@cpmc varchar(60),@ggmc varchar(20),@tjmc varchar(20),@zlmc varchar(20)
    declare  @f_level char(1),@li_count int
    declare  @v_id1 varchar(20),@v_id2 varchar(20),@dw char(4),@p_id1 varchar(20),@p_id2 varchar(20),@p_name varchar(60)
    ---->清除汇总表
        delete from dtc_onway_kcyue_zh where p_id=@p_id
       if @@error <> 0  
           begin
             select @as_error = description from master.dbo.sysmessages where error = @@ERROR
             select @as_error = '清除汇总表内容出错,错误信息:' + @as_error
             return
            end 
    ----> 
       declare cur_yue_zh_r cursor for
        SELECT DISTINCT  p_id,ppm, dlm1,dlm3,cpm,ggm,tjm,ddh,dj1 ,dj2,dj3,dwsl,dwdw,f_zhengfu, v_id1,v_id2,v_name,dlmc3,cpmc,ggmc,tjmc,zlmc
        FROM DTC_onway_kcyue  WHERE  ( v_id = @p_id ) AND ( yue =@yue )   
     
            open  cur_yue_zh_r
            fetch next  from cur_yue_zh_r  into  @ls_p_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@v_id1,@v_id2,@v_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
        
                 WHILE @@FETCH_STATUS = 0
        begin
                        ----->查余额汇总表里是否有
                         select @li_count= count(1) from dtc_onway_kcyue_zh
          where(p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
         ---->判断p_id是否是v_id的上级
                        select  f_level  = @f_level  from  DTC_onway_user_v_id   where  ( userid =@gs_userid ) AND  (  v_id = @ls_p_id )    
                         
                     if  @f_level = '0' and @li_count = 0 ---//是我的上级
                    begin
    INSERT INTO DTC_onway_kcyue_zh  
      ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,   
       s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,   
        x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )  
                                        values(@p_id,@v_id1,@v_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,
    @dwsl,@dj1,@dj2,@dj3,0,0,0,0,0,0,0,0,0,0,0,0,@v_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc )  
                                   end 
                        if  @f_level = '1' and @li_count = 0 ---//是我的下级
       begin
    INSERT INTO DTC_onway_kcyue_zh  
              ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,   
                s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,   
                x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )  
                                            values(@p_id,@v_id1,@v_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,0,0,0,0,
    @dwsl,@dj1,@dj2,@dj3,0,0,0,0,@v_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc )  
                                   end 
                            if  @f_level = '0' and @li_count = 1  ---//是我的上级
       begin
               update DTC_onway_kcyue_zh  
               set s_r_sl= s_r_sl+@dwsl----,s_r_dj1=@dj1,s_r_dj2=@dj2,s_r_dj3=@dj3
                where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)                                   end    
             if  @f_level = '1' and @li_count = 1  ---//是我的下级
       begin
              update DTC_onway_kcyue_zh  
             set x_r_sl= x_r_sl+@dwsl----,x_r_dj1=@dj1,x_r_dj2=@dj2,x_r_dj3=@dj3
              where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
                                      end    
                             fetch next  from cur_yue_zh_r  into  @ls_p_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@v_id1,@v_id2,@v_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
               END            close cur_yue_zh_r
            DEALLOCATE cur_yue_zh_r
        
    ---->取得发数据
      declare cur_yue_zh_s cursor for
      SELECT DISTINCT  v_id,ppm, dlm1,dlm3,cpm,ggm,tjm,ddh,dj1 ,dj2,dj3,dwsl,dwdw,f_zhengfu,p_id1,p_id2, p_name,dlmc3,cpmc,ggmc,tjmc,zlmc
      FROM DTC_onway_kcyue  WHERE  ( p_id = @p_id ) AND ( yue =@yue )   
     
            open  cur_yue_zh_s
            fetch next  from cur_yue_zh_s  into  @ls_v_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@p_id1,@p_id2,@p_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
       
             WHILE @@FETCH_STATUS = 0
        begin
                        ----->查余额汇总表里是否有
                    select @li_count =count(*)  from DTC_onway_kcyue_zh 
                     where  (p_id =@p_id)and (ppm=@ppm) and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
                    
         ---->判断v_id是否是v_id的上级
                   select  f_level  = @f_level  from  DTC_onway_user_v_id   where ( userid =@gs_userid) and  ( v_id = @ls_v_id)    
                 
                if  @f_level = '0' and @li_count = 0 ---//是我的上级
          begin
    INSERT INTO DTC_onway_kcyue_zh  
              ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,   
                s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,   
                x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )  
                                                    values(@p_id,@p_id1,@p_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,
    @dwsl,@dj1,@dj2,@dj3,0,0,0,0,0,0,0,0,@p_name,@ppm,@dlmc1,@dlmc3,@cpmc,@ggmc )  
                                       end 
                   if  @f_level = '1' and @li_count = 0 
       begin
    INSERT INTO DTC_onway_kcyue_zh  
              ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,   
                s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,   
                x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )  
                                            values(@p_id,@p_id1,@p_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,
    0,0,0,0,0,0,0,0,@dwsl,@dj1,@dj2,@dj3,@p_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc )  
                                   end 
                               if  @f_level = '0' and @li_count = 1 
       begin
    update DTC_onway_kcyue_zh  
             set  s_s_sl= s_s_sl+@dwsl--------,s_s_dj1=@dj1,s_s_dj2=@dj2,s_s_dj3=@dj3
      where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
                                  end    
     if  @f_level = '1' and @li_count = 1 
       begin
    update DTC_onway_kcyue_zh  
              set  x_s_sl= x_s_sl+@dwsl--------,x_s_dj1=@dj1,x_s_dj2=@dj2,x_s_dj3=@dj3
    where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
                                  end    
                                fetch next  from cur_yue_zh_s  into  @ls_v_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@p_id1,@p_id2,@p_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
                        end
        --->生成数据报错
       if @@error>0 
             begin
                      select @as_error = description from master.dbo.sysmessages where error = @@ERROR
      select @as_error = '生成汇总表内容出错,错误信息:' + @as_error
       rollback tran
                        return
             end 
    else
                           begin
              commit tran
                           end
           close cur_yue_zh_s
           DEALLOCATE cur_yue_zh_s
    GO