posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          java 如何執(zhí)行存儲過程

          Posted on 2009-06-27 00:35 Gavin.lee 閱讀(719) 評論(0)  編輯  收藏 所屬分類: JDBC
          CREATE proc p_upAppPda(        
              
          @upNo varchar(50),        
              
          @whCode varchar(50),        
              
          @instockNo varchar(50),        
              
          @ReturnVal int output        
          )         
          as         
          Begin        
                  
          set @gettime=convert(varchar(10),getdate(),120)        
              
          Begin tran t_test         
          if exists (select a.upNo from v_sumUpQty a left join v_factNum b on a.upNo=b.upNo where convert(decimal(19,0),a.upQty)-convert(decimal(19,0),b.factNum)< 0 and a.upNo=@upNo)        
          Begin              
             
          Rollback tran t_test        
             
          set @ReturnVal=1       
             
          return -1                
          end        
          else        
          Begin        
              
          if exists (select autoId from t_inventory where whCode=@whCode and packageBarcode=@boxCode and inventCode=@inventCode and placeCode=@placeCode )        
              
          Begin               
                  
          if(@@error<>0)        
                  
          Begin        
                      
          Raiserror('修改數(shù)據(jù)出錯',16,-1)        
                      
          Rollback tran t_test        
                      
          set @ReturnVal=-1        
                      
          Return -1        
                  
          end           
              
          end        
              
          Commit tran t_test        
              
          set @ReturnVal=0        
              
          return 0        
          end 

            

          執(zhí)行方法:一:

              Connection conn = db.createConnection();
              CallableStatement call = null;
              call=conn.prepareCall("{call p_upAppPda(?,?,?,?)}");
              call.setString(1, upNo);
              call.setString(2, whCode);
              call.setString(3, instockNo);
              call.registerOutParameter(4,java.sql.Types.INTEGER);
              call.executeUpdate();
              System.out.println(call.getInt(4));   // 獲取存儲過程的返回值


          方法二(看過沒用過,不知道怎么樣):

                  Connection conn = db.createConnection();
                  Statement statement = conn.createStatement();
                      statement = conn.prepareStatement("exec p_upAppPda'" + sql + "'," + 1+ "," + 2);
                  rs = statement.executeQuery();


           

          主站蜘蛛池模板: 丰县| 申扎县| 和田市| 闵行区| 临漳县| 曲阳县| 团风县| 甘肃省| 大连市| 栾川县| 兰坪| 广南县| 皮山县| 洱源县| 宁蒗| 家居| 武邑县| 苗栗县| 阿瓦提县| 临猗县| 敦煌市| 兴义市| 中山市| 乐清市| 奉贤区| 美姑县| 七台河市| 哈巴河县| 定安县| 青冈县| 西华县| 卓尼县| 景德镇市| 松江区| 沅江市| 福海县| 金平| 时尚| 通辽市| 延寿县| 宁国市|