जब मैं रेल से एक संग्रहीत प्रक्रिया कॉल करने के लिए प्रयास करते हैं, मैं इस अपवाद:क्या रुबी से एक 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
MySQL एडाप्टर है कि इस समस्या का समाधान के लिए Rails Wiki that discusses a patch में एक पृष्ठ नहीं है, लेकिन इसे बाहर पुरानी है और नहीं करता है अब काम नहीं कर रहा है।
कॉन्फ़िगरेशन कोड संग्रहीत प्रक्रियाओं को सही ढंग से सक्षम करता है, लेकिन संग्रहीत प्रक्रिया कॉल के बाद कनेक्शन को सिंक से बाहर होने के साथ अभी भी समस्या है और नई call_sp
विधि अब और काम नहीं करती है।
इस काम को कैसे प्राप्त करें के लिए कोई सुझाव?
ActiveRecord::Base.connection("call storedproc()")
यह वही अपवाद फेंकता है कि क्या storedproc()
रिटर्न किसी भी परिणाम या नहीं:
इस कोड मैं का उपयोग कर रहा है।
आपका उदाहरण काम करता है, लेकिन हमारे संग्रहीत proc के साथ मैं "त्रुटि 1415 (0A000): एक परिणाम के एक समारोह से सेट वापस जाने के लिए अनुमति नहीं"। मैं उस व्यक्ति से बात करने जा रहा हूं जिसने उन्हें लिखा है और देखें कि क्या हम उन्हें आपके उदाहरण की तरह चीजों को वापस करने के लिए फिर से लिख नहीं सकते हैं। – Otto
यह हमें आगे बढ़ाता है, लेकिन हमारे पास अभी भी कुछ प्रोसेस हैं जिन्हें बहुत सारे डेटा वापस करने की आवश्यकता है जो चर में काम नहीं करेंगे। – Otto
मैं आगे बढ़ गया और स्वीकार कर लिया, क्योंकि यह सबसे अच्छा वर्तमान समाधान प्रतीत होता है। अभी भी बहुत सारे डेटा लौटने का मुद्दा है, लेकिन यह कुछ दिन हो गया है और कोई भी बेहतर कुछ नहीं आया है। मुझे नहीं लगता कि यह MySQL एडाप्टर को ठीक किए बिना मौजूद है। – Otto