2017-06-19 39 views
0

回來我想在我的SQL Server數據庫來執行存儲過程。該程序做的事情是應該做的,但每當我試圖從我的Ruby on Rails應用程序運行時,其執行程序,但我不能得到一個返回值。我也嘗試修改過程以使用輸出參數。沒有結果ActiveRecord的execute_procedure()在Rails中

@success = ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2],params[:field3]) 
render html: @success 

渲染器顯示一個空數組。如果過程成功,它應該是1;如果失敗,它應該是0。當我在SQL Server Management Studio中運行這個時,我可以得到返回值。我究竟做錯了什麼?

回答

0

我不相信execute_procedure返回數組 - 這是你在找什麼。你想要的是結果。也許ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2],params[:field3]).to_a

點擊ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2],params[:field3]).inspect以查看發生了什麼,或者您可以看到是否實施了to_json

最後,ActiveRecord::Base.connection.execute_procedure("procedure",params[:field1],params[:field2],params[:field3]).methods將返回什麼方法都可以。

+0

該方法的源代碼是在這裏http://www.rubydoc.info/gems/activerecord-sqlserver-adapter/3.2.9/ActiveRecord/ConnectionAdapters/Sqlserver/DatabaseStatements:execute_procedure。 結果在此方法中被聲明爲一個空數組,並且.methods給出的所有方法似乎暗示它是一個數組。當我做了to_json時,它也顯示一個空數組。我正在尋找實際過程返回的1或0。 – jgolfman

+0

約'#result','#first'什麼? –

+0

也沒有 – jgolfman

相關問題