2017-06-19 68 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

相关问题