|
楼主 |
发表于 2018-8-8 11:07:37
|
显示全部楼层
经过断点调试之后发现报错处在 pstmt.execute(); 这里,不知接下来如何修改,整段代码贴在下面
public static JSONObject Ana(JSONObject params, ActionContext context) throws SQLException, NamingException {
String UserId = params.getString("UserId");
String RecipeId = params.getString("RecipeId");
String AId = params.getString("AId");
String RPId = params.getString("RPId");
String RT = params.getString("RT");
String RU = params.getString("RU");
Connection conn = context.getConnection(DATASOURCE_BLSHOPAPP);
try{
JSONObject ret = new JSONObject();
java.sql.PreparedStatement pstmt = null;
pstmt = conn.prepareStatement(" declare @O as nvarchar(50),@P as nvarchar(50),@Q as nvarchar(50),@RU as nvarchar(50),@RT as nvarchar(50),@Us as nvarchar(50),@CW as nvarchar(50),@RD as nvarchar(50),@CN as nvarchar(50),@CG as nvarchar(50),@CB as nvarchar(50),@ADIN as nvarchar(50),@un as nvarchar(50), " +
" @A as nvarchar(50),@X as nvarchar(50),@Y as nvarchar(50),@Z as nvarchar(50),@B as nvarchar(500),@AXA as nvarchar(500),@temp as nvarchar(50),@N as nvarchar(50),@U as nvarchar(50),@V as nvarchar(50),@W as nvarchar(50) " +
" set @Q=? set @P=? set @O=? set @Us=? set @RT=? set @RU=? " +
" truncate table AnalysisResult " +
" set @B=N'select @CW=ClientWeight from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CW nvarchar(50) output',@CW output set @B=N'select @RD=RecipeDays from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@RD nvarchar(50) output',@RD output set @B=N'select @CN=ClientName from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CN nvarchar(50) output',@CN output set @B=N'select @CG=ClientGender from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CG nvarchar(50) output',@CG output set @B=N'select @CB=ClientBirthday from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CB nvarchar(50) output',@CB output " +
" exec('declare C cursor fast_forward for select ADFieldName,ADSAdjust,ADSField,ADSField1,ADItemName,unit from AnalysisDetail where AId ='+@P+' ') " +
" open C " +
" fetch next from C into @A,@X,@Y,@Z,@ADIN,@un " +
" while @@fetch_status =0 " +
" begin " +
" set @B = N'select @N='+@A+' from RecipeContent where UserId ='+@RU+' and RecipeId ='+@O " +
" exec sp_executesql @B,N'@N nvarchar(50) output',@N output " +
" if @X=0 " +
" begin " +
" if @Y!=NULL " +
" begin " +
" set @B=N'select @U='+@Y+' from IntakeStandard where RPId='+@Q+' ' " +
" exec sp_executesql @B,N'@U nvarchar(50) output',@U output " +
" end " +
" else " +
" begin " +
" set @U='NULL' " +
" end " +
" if @Z!=NULL " +
" begin " +
" set @B=N'select @V='+@Z+' from IntakeStandard where RPId='+@Q+' ' " +
" exec sp_executesql @B,N'@V nvarchar(50) output',@V output " +
" end " +
" else " +
" begin " +
" set @V='NULL' " +
" end " +
" end " +
" else if @X=1 " +
" begin " +
" set @B=N'select @U='+@Y+' from IntakeStandard where RPId='+@Q+' ' " +
" exec sp_executesql @B,N'@U nvarchar(50) output',@U output " +
" set @B=N'set @U='+@U+'*'+@CW+' ' " +
" exec sp_executesql @B,N'@U nvarchar(50) output',@U output " +
" set @V='NULL' " +
" end " +
" set @B=N'set @temp='+@N+'/'+@RD+' ' " +
" exec sp_executesql @B,N'@temp nvarchar(50) output',@temp output " +
" select @AXA='insert into AnalysisResult(AId,RecipeId,UserIntake,ADSAdjust,UserId,UserStandard,UserStandard1,ADItemName,unit) Values('+@P+',1,'+@temp+','+@X+','+@Us+','+@U+','+@V+','''+@ADIN+''','''+@un+''')' " +
" exec(@AXA) " +
" fetch next from C into @A,@X,@Y,@Z,@ADIN,@un " +
" end " +
" close C " +
" deallocate C " +
" TRUNCATE TABLE ARSave " +
" declare @AK nvarchar(50),@RN nvarchar(50),@RPG nvarchar(50) " +
" set @B=N'select @AK = AKind from AnalysisDetail where AId ='+@P+' ' " +
" exec sp_executesql @B,N'@AK nvarchar(50) output',@AK output " +
" set @B=N'select @RN = RecipeName from RecipeContent where RecipeId = '+@O+' ' " +
" exec sp_executesql @B,N'@RN nvarchar(50) output',@RN output " +
" set @B=N'select @RPG = RPGroup from IntakeStandard where RPId = '+@Q+' ' " +
" exec sp_executesql @B,N'@RPG nvarchar(50) output',@RPG output " +
" insert into ARSave(AKind,RecipeName,RPGroup,ClientName,ClientBirthday,ClientWeight,ClientGender,RecipeDay,UserId,RecentTime,RecentUser) values(@AK,@RN,@RPG,@CN,@CB,@CW,@CG,@RD,@Us,@RT,@RU)");
pstmt.setString(1,RPId);
pstmt.setString(2,AId);
pstmt.setString(3,RecipeId);
pstmt.setString(4,UserId);
pstmt.setString(5,RT);
pstmt.setString(6,RU);
pstmt.execute(); //断点调试报错处
ret.put("state", "1");
return ret;
} finally {
conn.close();
}
} |
|