2013-11-15

railsでSQL serverに接続しているときに直接SQLを発行

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
railsで時折、ActiveRecordではなくSQLを直接を発行したくなるときがあります。

調べてみると以下のような感じで実行するというのが見つかります。

sql = "select 'TEST' as col"
a = ActiveRecord::Base.connection.execute(sql)

SQL Serverに対してこれでやると
-1が帰ってきて、わけわからない感じでした。

よく調べてみると以下のようにexecuteでなくselect_allならばOKでした。

sql = "select 'TEST' as col"
a = ActiveRecord::Base.connection.select_all(sql)

この場合は、
[{"col"=>"TEST"}]
みたいな結果が返ってきます。

以下が参考になりました。
https://github.com/rails-sqlserver/tiny_tds/issues/85 



コメントを投稿