如何在SQLServer中获取存储过程sp_setapprole的OUTPUT参数

时间:2013-11-27 15:40:19

标签: java sql sql-server stored-procedures

我正在使用以下JDBC驱动程序(来自Microsoft的驱动程序):http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

我想检索存储过程sp_setapprole的OUTPUT参数(@cookie)。我可以像这样调用该过程,但我无法弄清楚如何检索OUTPUT参数。

statement = connection.createStatement();
statement.execute("EXEC sp_setapprole '" + applicationRoleName + "', '" + applicationRolePassword + "'");

我尝试使用PreparedStatement和CallableStatement,我总是得到以下异常:Stored procedure 'sys.sp_setapprole' can only be executed at the ad hoc level.。我发现这篇文章:https://stackoverflow.com/a/6944693/1362049,但我不喜欢这个解决方案(使用另一个JDBC驱动程序)。

所以我的问题是:如何使用sp_setapprole从SQLServer中的存储过程Statement获取OUTPUT参数。

1 个答案:

答案 0 :(得分:-1)

我认为这会有所帮助。我不是一个很棒的java程序,但多年来一直使用ODBC。

http://www.tutorialspoint.com/jdbc/jdbc-statements.htm

查看可调用语句。您需要定义输入/输出或输入参数。执行SP并读取输出。

在C#中,它只是查看下面的参数给你的值。但是建立连接,绑定参数,进行调用和读取输出的想法是一样的。

my_Cmd.Parameters [" @页页次&#34]。Value.ToString();

这是来自MSDN的C ++文章。

http://technet.microsoft.com/en-us/library/ms403283.aspx

同样的想法,绑定参数,进行调用,使用[SQLExecDirect]读取输出

如果你没有得到它,请给我一个喊叫声。