連接到SQL Server 2005所以我通過ActiveRecord的 - SQLSERVER適配器連接到SQL Server 2005從我的Rails應用程序時,Rails中執行SQL查詢。通過ActiveRecord的 - SQLSERVER適配器
我能夠做
Mymodel.execute_procedure("thisProcedure", param1, param2)
執行存儲的特效,但我有有我有麻煩一個SQL INOUT變量存儲的過程。我執行它,我沒有看到該變量返回。
所以現在我想只是執行一些原始的SQL語句,如
declare @thisVar int
EXEC thatProcedure 1, 1, @thisVar = @thisVar output
print @thisVar
當我做
sql = "declare @thisVar int
EXEC thatProcedure 1, 1, @thisVar = @thisVar output
print @thisVar"
foo = Mymodel.connection.execute(sql)
我沒有得到任何錯誤,一切看起來成功。我找回具有DBI :: StatementHandle類的foo。我如何真正看到來自SQL的響應?
在此先感謝!
感謝您的信息! 哪裏去定義? 我試過foo.fetch_all,我得到「DBI :: InterfaceError:語句已經關閉!」 – Corey 2010-06-30 20:40:14
真的,對不起。當我寫這段代碼的時候,看着兩年前的代碼,......正如你懷疑的那樣躲在那裏 - sth = foo。我承認,當我不得不專門處理存儲過程時,我繞過了AR,因爲我還在使用Rails「熟悉」。另一個選擇可能是讓存儲過程返回參數作爲結果集「SELECT @output_parameter as somevalue」。那麼至少你正在處理AR可以處理的事情。 – 2010-06-30 21:07:26