2010-07-12 87 views
3

我有使用activerecord从数据库访问数据。它在localhost中正常工作,但当我尝试它时另一台服务器,我收到以下错误:ActiveRecord :: StatementInvalid(Mysql :: Error:PROCEDURE db_name.proc_spName无法返回给定上下文中的结果集:

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' 

BTW,下面是我遇到下面的错误

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

任何想法,将不胜感激行..

+1

有可能是有用的答案类似的问题被问已经在这里:http://stackoverflow.com/questions/471517/is-it-possible-to-call-a-mysql-stored-procedure-from -红宝石 – bjg 2010-07-12 11:21:12

回答

2

由于BJG告诉你,这个链接很好解释它;因为ActiveRecord期望返回结果集。你可以沿着这些行使用execute来调用存储过程。

SELECT proc_getresults() as Results FROM TABLE ... 
相关问题