gpt4 book ai didi

mysql - 如何在 Sequel 中使用存储过程

转载 作者:行者123 更新时间:2023-11-29 16:35:40 25 4
gpt4 key购买 nike

我正在尝试使用 ruby​​ 的存储过程和 Sequel gem;但它继续向我抛出 Mysql2::Error: Commands out ofsync;你现在不能运行这个命令运行存储过程后,在文档上找不到有关多语句查询的任何内容:

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

在这种情况下,我确信我的程序将返回一行,因此我只得到第一行。

关于mysql - 如何在 Sequel 中使用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53614431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com