0

私はデータベースにMySQLを使用してRubyWebアプリに取り組んでいます。mysql友人から、このgemはストアドプロシージャではうまく機能しないと聞いたので、 mysql2gemと一緒に使用することにしましたseqel

MySQLに。というストアドプロシージャがありますAddUser(Username, Password)。MySQLからは正常に動作します。セキュリティ上の理由から、gemを使用してアクセスしたいと思います。

ここのsqeuelドキュメント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::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 に答える