0

我一直在开发一个使用 MySQL 作为数据库的 Ruby Web 应用程序。我从朋友那里听说mysqlgem 不能很好地与存储过程一起使用,所以我决定将mysql2gem 与 gem 一起使用seqel

我在 MySQL 中有一个名为AddUser(Username, Password). 它在 MySQL 上运行良好。出于安全原因,我想使用 gem 访问它。

这里sqeuel文档只真正涵盖了如何访问使用gem 制作的数据库。我的初稿代码看起来像这样,但实际上并没有运行该过程sequel

# 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::Error: Query was empty

4

1 回答 1

1

我不确定 PreparedStatement 是否真的能够调用存储过程。当然,在 JDBC 中,您必须使用 CallableStatement 来执行此操作。

由于您使用的是 Sequel,您是否看过 Sequel::DataSet::StoredProcedures ( http://sequel.rubyforge.org/rdoc-adapters/classes/Sequel/Dataset/StoredProcedures.html )?

于 2013-01-21T14:26:58.900 回答