当我打电话从Rails的存储过程,我得到这个异常:是否可以从Ruby调用MySQL存储过程?
ActiveRecord::StatementInvalid: Mysql::Error: PROCEDURE pipeline-ws_development.match_save_all can't return a result set in the given context: call match_save_all()
from /Users/otto/Projects/Futures/src/pipeline-ws/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:150:in `log'
from /Users/otto/Projects/Futures/src/pipeline-ws/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:281:in `execute'
from (irb):3
有一个在Rails Wiki that discusses a patch为MySQL适配器解决此问题的网页,但它是外的日期和没有按似乎再也无法工作了。
配置代码正确启用存储过程,但仍存在连接在存储过程调用后不同步的问题,并且新的call_sp
方法不再有效。
有关如何使这项工作的任何建议?
这是我使用的代码:
ActiveRecord::Base.connection("call storedproc()")
它抛出同样的异常任何结果是否storedproc()
返回与否。
你的榜样工作,但与我们的存储过程中,我得到“ERROR 1415(0A000):不准从函数返回的结果集”。我要和那些写他们的人谈谈,看看我们是否不能重写他们来回报你的例子。 – Otto 2009-01-23 15:41:08
这让我们前进,但我们仍然有一些需要返回大量数据的proc,这些数据在变量中不起作用。 – Otto 2009-01-23 19:03:51