在Ruby中访问MySQL存储过程

在Ruby中访问MySQL存储过程,mysql,ruby,Mysql,Ruby,我一直在为数据库使用MySQL开发Ruby web应用程序。我从一位朋友那里听说mysqlgem不能很好地与存储过程配合使用,所以我决定将mysql2gem与sequelgem一起使用 我在MySQL中有一个名为AddUser(用户名、密码)的存储过程。它在MySQL中运行良好。出于安全原因,我想使用gems访问它 sqeueldoc只介绍了如何访问使用sequelgem创建的数据库。我的第一个草稿代码看起来像这样,但实际上并没有运行这个过程 # Connect to the database

我一直在为数据库使用MySQL开发Ruby web应用程序。我从一位朋友那里听说
mysql
gem不能很好地与存储过程配合使用,所以我决定将
mysql2
gem与
sequel
gem一起使用

我在MySQL中有一个名为
AddUser(用户名、密码)
的存储过程。它在MySQL中运行良好。出于安全原因,我想使用gems访问它

sqeuel
doc只介绍了如何访问使用
sequel
gem创建的数据库。我的第一个草稿代码看起来像这样,但实际上并没有运行这个过程

# Connect to the database
db = Sequel.mysql2(
    :host => '127.0.0.1', 
    :database => database, 
    :username => username, 
    :password => password)

# Call the sproc
db["User"]
db.call_sproc(:insert, "AddUser", [name, pass])
错误消息是:

Sequel::DatabaseError


Mysql2::错误:查询为空

我不确定PreparedStatement是否能够调用存储过程。当然,在JDBC中,您必须使用CallableStatement来实现这一点


既然您使用的是Sequel,那么您有没有看过Sequel::DataSet::StoredProcess()?

应该是
prepare\u存储过程
call\u存储过程
?谢谢,这似乎更正确。不过我还是有点麻烦。谢谢,那绝对是个好地方。我仍然有问题,但是,你介意看一下我的编辑吗?这个线程[可能有用。我只是想用Sequel作为ActiveRecord 3的可能替代品,而不是在Ruby中做任何SP工作。你可能需要手动建立存储的过程调用并手动执行它们。