Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在Sequel中使用存储过程_Mysql_Ruby_Sequel - Fatal编程技术网

Mysql 如何在Sequel中使用存储过程

Mysql 如何在Sequel中使用存储过程,mysql,ruby,sequel,Mysql,Ruby,Sequel,我正在尝试使用ruby的存储过程和Sequel gem;但它继续给我抛出一个Mysql2::错误:命令不同步;现在无法运行此命令 运行存储过程后,在文档上找不到有关多语句查询的任何信息: MyModel.db['CALL get_info("arg")').first # => {col: val, col2: val} MyModel.db['CALL get_info("arg")').first # => Sequel::DatabaseDisconnectError: Mys

我正在尝试使用ruby的存储过程和Sequel gem;但它继续给我抛出一个Mysql2::错误:命令不同步;现在无法运行此命令 运行存储过程后,在文档上找不到有关多语句查询的任何信息:

MyModel.db['CALL get_info("arg")').first
# => {col: val, col2: val}
MyModel.db['CALL get_info("arg")').first
# => Sequel::DatabaseDisconnectError: Mysql2::Error: Commands out of sync; you can't run this command now
from /usr/local/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/lib/mysql2/client.rb:120:in `_query'

在Sequel gem创建者的帮助下,我想出了一个解决方案,Sequel似乎不支持这种返回集,因此必须使用mysql2驱动程序:

res = nil
Domain.db.synchronize do |conn|
  res = conn.query("CALL sp_panel_info('#{self.code}')")

  while conn.next_result
    conn.store_result
  end
end
row = res.first
在这种情况下,我确信我的过程将返回一行,因此我只能得到第一行。

也许可以尝试MyModel.db.dataset。调用存储过程:选择“获取信息”、“参数”?