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