如何使用NuoDB在RubyonRails中手动执行SQL命令?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我正在尝试手动执行SQL命令,以便访问NuoDB中的过程。

我使用RubyonRails,我使用以下命令:

ActiveRecord::Base.connection.execute("SQL query")

“SQL查询”可以是任何SQL命令。

例如,我有一个名为“反馈”的表,当我执行命令时:

ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`")

这将只返回一个“True”响应,而不是发送给我所有要求的数据。

这是Rails控制台上的输出:

SQL (0.4ms)  SELECT `feedbacks`.* FROM `feedbacks`
 => true
提问于
用户回答回答于

我用来执行自定义SQL语句的工作命令是:

results = ActiveRecord::Base.connection.execute("foo")

以“foo”作为SQL语句(即。“选择*)。

此命令将返回一组值作为散列,并将它们放入结果变量中。

所以在我的Rails应用程序上_rb我添加了以下内容:

   def execute_statement(sql)
        results = ActiveRecord::Base.connection.execute(sql)
        if results.present?
            return results
        else
            return nil
        end
    end

使用执行_语句将返回找到的记录,如果没有,则返回零。

这样,我就可以在Rails应用程序中的任何地方调用它,例如:

records = execute_statement("select * from table")
用户回答回答于

对我来说,我无法让它返回哈希。

results = ActiveRecord::Base.connection.execute(sql)

但是利用exec_query方法有效。

results = ActiveRecord::Base.connection.exec_query(sql)

扫码关注云+社区