ActiveRecord and tiny_tds

32 views
Skip to first unread message

ondem...@gmail.com

unread,
Dec 17, 2013, 12:05:07 PM12/17/13
to rubyonra...@googlegroups.com
Hi,

I'm having some issues trying to run .find_by_sql against a Win MSSQL 2008 server. When I use the tiny_tds gem the query works without any issues.

require 'rubygems'
gem 'tiny_tds', '= 0.6.2'
require 'tiny_tds'
gem 'activerecord', '= 3.2.12'
require 'active_record'
require 'activerecord-sqlserver-adapter'

client = TinyTds::Client.new(:username => 'user',:password => 'pass',:host => 'host',:database => 'db')
result = client.execute(sql)
=> #<TinyTds::Result:0x000000022c3e48>


When I try the same query with an ActiveRecord::Base model I don't see any results (I've tried both :host and :dataserver with the same result).

class Ipdb < ActiveRecord::Base
        establish_connection(
       :adapter => "sqlserver",
       :host => 'host',
        :username => 'user',
       :password => 'pass',
       :database => 'db',
        )
        self.table_name = "View_All_IPs"
end
ai = Ipdb.find_by_sql(sql)
p ai.size
=> 1
p ai.inspect
=>"[#<Ipdb >]"
p ai[0].class
=> Ipdb()
p ai[0]
=> #<Ipdb >

Any ideas about where the problem may be?

Thanks
J-H Johansen

ondem...@gmail.com

unread,
Dec 17, 2013, 3:12:47 PM12/17/13
to rubyonra...@googlegroups.com
After some more debugging I finally realized that the object actually had some data attached to it. It must have been the .inspect which fooled me into thinking it was empty.

ai = Ipdb.where("[IP Address] = ?", ip)
ai.each do |b|
        puts b["IP Address"]
        puts b.Information
end

This outputs the information needed. Not sure why the object doesn't output all this information when I 'inspect' it...
Reply all
Reply to author
Forward
0 new messages