當我打電話從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