连接sql server 2000的时候,执行存储过程的时候,用
spStatement = conn.prepareCall("{call Pr_Check_User_Name (?,?)}");
spStatement.setString("@name",name);
spStatement.registerOutParameter("@result",Types.BIT);
spStatement.execute();
result = spStatement.getBoolean("@result");
会出现 Exception in thread "main" java.lang.AbstractMethodError: com.microsoft.jdbc.bas
e.BaseCallableStatement.setString(Ljava/lang/String;Ljava/lang/String;)V
at myicq.client.Common.User.checkName(User.java:102)
at myicq.client.Common.test.main(test.java:19)
错误,而用 spStatement = conn.prepareCall("{call Pr_Check_User_Name (?,?)}");
spStatement.setString(1,name);
spStatement.registerOutParameter(2,Types.BIT);
spStatement.execute();
result = spStatement.getBoolean(2);
的时候却正常,这是为什么啊?
spStatement = conn.prepareCall("{call Pr_Check_User_Name (?,?)}");
spStatement.setString("@name",name);
spStatement.registerOutParameter("@result",Types.BIT);
spStatement.execute();
result = spStatement.getBoolean("@result");
会出现 Exception in thread "main" java.lang.AbstractMethodError: com.microsoft.jdbc.bas
e.BaseCallableStatement.setString(Ljava/lang/String;Ljava/lang/String;)V
at myicq.client.Common.User.checkName(User.java:102)
at myicq.client.Common.test.main(test.java:19)
错误,而用 spStatement = conn.prepareCall("{call Pr_Check_User_Name (?,?)}");
spStatement.setString(1,name);
spStatement.registerOutParameter(2,Types.BIT);
spStatement.execute();
result = spStatement.getBoolean(2);
的时候却正常,这是为什么啊?
CREATE PROCEDURE dbo.Pr_Check_User_Name
(
@name NVARCHAR(50),
@result BIT OUTPUT
)ASIF EXISTS (SELECT * FROM Users WHERE userName = @name)
SET @result = 1
ELSE
SET @result = 0
GO