2013-11-27 216 views
1

我正在使用以下JDBC驅動程序(來自Microsoft的一個):http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx如何在SQLServer中獲取存儲過程sp_setapprole的OUTPUT參數

我想檢索存儲過程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驅動程序)。

所以我的問題:如何使用Statement從SQLServer中的存儲過程sp_setapprole獲取OUTPUT參數。

回答

-1

我認爲這會有所幫助。我不是一個大的Java程序,但是和ODBC一起生活了好幾年。

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

看的調用語句。您需要定義輸入/輸出或輸入參數。執行SP並讀取輸出。

在C#中,它只是看着如下參數給你的價值。但是建立連接,綁定參數,調用和讀取輸出的想法是相同的。

my_Cmd.Parameters [「@ PageCount」]。Value.ToString();

這是來自MSDN的C++文章。

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

同樣的想法,綁定參數,撥打電話,使用[SQLExecDirect的]讀取輸出

給我一叫喊,如果你不明白這一點。

+0

我不能使用CallableStatement(或PreparedStatement),因爲我得到的錯誤'存儲過程'sys.sp_setapprole'只能在ad hoc級別執行。「。看到我的第一篇文章。 –

相關問題