急:帮我看看这个存储过程怎么调用吧!谢谢!

june37 2006-09-28 04:55:52
帮我看看这个存储过程怎么调用吧!谢谢!
我的存储过程是:
CREATE procedure proc_count_ry
@department varchar(50),
@remark1 varchar(50)
as
set nocount on
declare @dp varchar(60) ,@rmk varchar(60)
set @dp = '%'+@department + '%'
set @rmk = '%' +@remark1 + '%'
SELECT itemcode, department, SUM(monthpeople) AS monthpeople,remark1 into #temp FROM cw
where department like @dp and remark1 like @rmk
GROUP BY itemcode, department,remark1 ORDER BY itemcode,department,remark1
SELECT itemcode, department, SUM(monthpeople) AS monthpeople into #temp1 FROM cw
where department like @dp
GROUP BY itemcode, department ORDER BY itemcode,department
select a.itemcode ,a.department,a.monthpeople ,b.monthpeople as total from #temp a ,#temp1 b
where a.itemcode = b.itemcode
set nocount on
GO

我在JAVA 写了一段这样的代码 不知道对不对?
public int getproc_count_ry(String department, String remark1)
{
//调用存储过程
int ret =0;
Connection cConn = null;
CallableStatement sStmt = null;

try
{
cConn = SQLServerManagerFactory.getConnetion();
sStmt = cConn.prepareCall("{ ? = call proc_count_ry (?) }");
sStmt.registerOutParameter(1, java.sql.Types.INTEGER);
sStmt.registerOutParameter(2, java.sql.Types.INTEGER);
sStmt.execute();

SQLServerManagerFactory.close(cConn);
sStmt.close();
}
catch (SQLException e)
{
e.printStackTrace();

}
return ret;
}


然后 在JSP 页面上怎么调用这个存储过程显示出结果呢??
谢谢!!
...全文
279 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nimeide1234567890 2006-09-29
  • 打赏
  • 举报
回复
ding
joy_cz 2006-09-29
  • 打赏
  • 举报
回复
学习~~~~~~ING
hf515 2006-09-29
  • 打赏
  • 举报
回复
学习
lip009 2006-09-29
  • 打赏
  • 举报
回复
Connection cConn = null;
<%
CallableStatement sStmt = null;

try
{
cConn = SQLServerManagerFactory.getConnetion();
sStmt = cConn.prepareCall("{ call proc_count_ry (?,?) }");
sStmt.setString(1,"第一个要传入的字符串参数的值");
sStmt.setString(2,"第二个要传入的字符串参数的值");
sStmt.execute();

SQLServerManagerFactory.close(cConn);
sStmt.close();
}
catch (SQLException e)
{
e.printStackTrace();

}
%>
直接这样写不就行了
june37 2006-09-29
  • 打赏
  • 举报
回复
<tr>
<td width="50%" >项目编号</td>

<td width="20%" >当月人天</td>

<td width="50%" >项目总和</td>



</tr>
<% request.setCharacterEncoding("gb2312");

String department=request.getParameter("department");
out.println("部门:");
out.println(department);
String remark1=request.getParameter("remark1");
out.println(remark1);
Yuenew netInfo = new Yuenew();
cYue data;
netInfo.getproc_count_ry(department,remark1);
for(int i=0;i<netInfo.GetRecordCount();i++)
{
data = (cYue)netInfo.GetRecord(i);
%>



</td>
<td bgcolor="#E1EFFA"><%= data.itemcode %><></td>
<!-- <td bgcolor="#E1EFFA" ></td> -->
<td bgcolor="#E1EFFA" ><%= data.remark1 %></td>
<td bgcolor="#E1EFFA"><%= data.monthpeople %></td>
</tr>

<%}%>
lip009 2006-09-28
  • 打赏
  • 举报
回复
1.sStmt = cConn.prepareCall("{ ? = call proc_count_ry (?) }"); 这里的调用错了,应该是:sStmt = cConn.prepareCall("{ call proc_count_ry (?,?) }");
2.sStmt.registerOutParameter(1, java.sql.Types.INTEGER);
sStmt.registerOutParameter(2, java.sql.Types.INTEGER);

这里错了吧,你的@department,@remark1这两个参数是存储过程的输入参数,而你上面两句是注册输出参数用的,应该是:
sStmt.setString(1,"第一个要传入的字符串参数的值");
sStmt.setString(2,"第二个要传入的字符串参数的值");
kubbye 2006-09-28
  • 打赏
  • 举报
回复
up
zzd8310 2006-09-28
  • 打赏
  • 举报
回复
帮顶

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧