代码之家  ›  专栏  ›  技术社区  ›  kapso

从Rails 3调用MySQL存储过程(返回resultset)时出错

  •  0
  • kapso  · 技术社区  · 14 年前

    我正在从我的模型调用一个存储过程(mysql)。此存储过程返回结果集,但我得到此错误…

    mysql2::错误:过程 我在附近的地点有问题 无法在给定的 语境:…

    这是我使用的轨道代码-

    connection.select_all("call sp_some_proc()")
    

    我也尝试过“connection.execute”,但也失败了。我已经成功地从我的模型中调用了另一个存储过程,但是这个过程没有返回结果集。

    1 回复  |  直到 13 年前
        1
  •  2
  •   Wolfgang    14 年前

    adapter:mysql adapter:mysql2 database.yml

    db = ActiveRecord::Base.connection.raw_connection
    entries = Entry.find_by_sql( 'CALL sp_get_all_entries()' )
    
    # we need to flush the result set otherwise following SQL statements cannot be processed
    db.next_result if ( db.more_results? )
    

    entries.each do |entry|
        puts entry.name
        puts entry.extra_column_from_sp
    end