CallableStatement cstmt = conn.prepareCall("{call ValidateUser(?, ?, ?,?)}");
cstmt .registerOutParameter(4,java.sql.Types.INTEGER);
cstmt .setInt(1,int1);
cstmt .setString(2,s1);
cstmt .setString(3,s1);
cstmt .registerOutParameter(4,java.sql.Types.INTEGER);
cstmt .setInt(1,int1);
cstmt .setString(2,s1);
cstmt .setString(3,s1);
解决方案 »
- Quartz设置每小时执行如何写CronExpression表达式 急急急
- Java 中在JTable的第一列放入单选按钮
- 变态公司的上机测试,40分钟你行吗?
- 学习JAVA手册
- 在实际开发项目中 ,位运算主要处理什么问题?
- 请问关于函数参数传递问题
- 请问如何制作jar可执行文件?请高手赐教!
- 【求助】下面这段 代码有什么错?为什么?
- 关于GridLayout中对象放置位置的问题
- 我的IE不能显示applet,请问会是什么原因?原来想是只是自己机器上的看不了,谁知网上的也不行:(用appletviewer可以看到)
- 两个frame在退出时为何不一样???(非常简单)
- 在java种怎样进行跟踪调试
我照着做了,cstmt.execute()报错:为存储过程指定的参数过多!
cstmt.registerOutParameter(4, java.sql.Types.INTEGER);
cstmt.setInt(1, uID);
cstmt.setString(2, nickname);
cstmt.setString(3, pwd);
System.out.print("Prepared sp \n");
cstmt.execute();
System.out.print("Excuted sp \n"); userID = cstmt.getInt(4);
System.out.print("Got INT(4) \n");//OUTPUT:preared sp
ms sql server exception: 为存储过程validateuser指定的参数过多!
就是你create……
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(1, uID);
cstmt.setString(2, nickname);
cstmt.setString(3, pwd);
System.out.print("Prepared sp \n");
cstmt.execute();
System.out.print("Excuted sp \n"); userID = cstmt.getInt(1);
System.out.print("Got INT(1) \n");
是不是你输出参数和第一个输入参数是inout的
如果这样 呢试着用上面的看看!
@UID int,
@LoginName varchar(32),
@chvPassword varchar(16)
as
从查询分析器看,参数的顺序是:
output:int
input:int
input:varchar
input:varchar
我也试着把第一个参数当作输出值,错误是一样的
形式参数@uid定义为output,但实际参数并没有申明为OUTPUT。 而且我也试过了,这3个input参数中任意一个被注册为输出参数时,都会有这样的异常。
如果申明了4个参数,当我注册第一、第四个参数为输出时,都抛出参数太多的异常。
我很迷惑,希望各位大哥帮帮忙。
CallableStatement cstmt = conn.prepareCall("{call ValidateUser(?, ?, ?)}");
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(1, uID);
cstmt.setString(2, nickname);
cstmt.setString(3, pwd);
System.out.print("Prepared sp \n");
cstmt.execute();
这样试试会不会刚刚多了一个?
ResultSet rs=cstmt.getResultSet();
if(rs!=null){
while(rs.next()){
System.out.println(rs.getString(1));
}
}
CallableStatement cstmt = conn.prepareCall("{call ValidateUser(?, ?, ?)}");
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(1, uID);
cstmt.setString(2, nickname);
cstmt.setString(3, pwd);
cstmt.execute();
2、根据这个SP的名字,应当是没有结果集返回的,只是判断用户是否有效,输出在第一个inout参数里(比如返回0代表无效的账号,其它值就是代表当前合法账号了)
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(2, uID);
cstmt.setString(3, nickname);
cstmt.setString(4, pwd);
System.out.print("Prepared sp \n");
cstmt.execute();应该是这样吧
http://expert.csdn.net/Expert/topic/1152/1152015.xml?temp=.0257532