ActiveRecord :: StatementInvalid (Mysql :: Ошибка: PROCEDURE db_name.proc_spName не может вернуть набор результатов в заданном контексте: - PullRequest
3 голосов
/ 12 июля 2010

Я использую activerecord для доступа к данным из БД. Он отлично работает в localhost, но когда я попробовал его на другом сервере, я получаю следующие ошибки:

ActiveRecord::StatementInvalid (Mysql::Error: PROCEDURE db_name.proc_spName can't return a result set in the given context: CALL proc_spName(............)):
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:188:in `log'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:310:in `execute'
    /app/controllers/keywordprocessor_controller.rb:306:in `result'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1256:in `send'

Кстати, ниже строка, где я получаю следующие ошибки

sql = "CALL proc_getresults"
res = ActiveRecord::Base.connection.execute(sql)

Любые идеи будут с благодарностью ..

1 Ответ

2 голосов
/ 02 мая 2012

Как показала BJG, эта ссылка в значительной степени объясняет это; поскольку ActiveRecord ожидает возврата набора результатов. Вы можете использовать что-то в этом духе для вызова хранимых процедур с помощью execute.

 SELECT proc_getresults() as Results FROM TABLE ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...