Connecting to MSSQL works in IRB, but not rails

Hi,

I am attempting to get code working that connects to a MS SQL server from a Linux web server. My testing in irb works, but when I try it in rails I have no such luck. Sorry about the long post.

I have install and tested FreeTDS (works), and unixODBC (works). I have a working ODBC connector called CTEL.

I have also installed RubyDBI and RubyODBC. I tested those by starting irb1.8 and executing the following code:

require "dbi" dbh = DBI.connect('dbi:ODBC:CTEL', 'usrename', 'password') sth = dbh.execute("SELECT Org_ID FROM Org") while row = sth.fetch do   print row end sth.finish

(Where username and password are the correct values.) It works perfectly and prints out all of the Org_IDs. So, it looks like I have all of the prereqs workings and life is good.

However, when I start working in rails things don't go as smoothly. My database.yml looks like:

ctel:   adapter: sqlserver   mode: odbc   dsn: CTEL   username: ************   password: *************

My model is legacy_customer.rb:

class LegacyCustomer < ActiveRecord::Base

  establish_connection :ctel   set_table_name :Org   set_primary_key :Org_ID

end

Next I open up script/console and type "test = LegacyCustomer.new" and get the following:

DBI::DatabaseError: INTERN (0) [RubyODBC]No data found         from /usr/local/lib/site_ruby/1.8/DBD/ODBC/ODBC.rb:186:in `='         from /usr/local/lib/site_ruby/1.8/dbi/dbi.rb:733:in `='         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/sqlserver_adapter.rb:42:in `sqlserver_connection'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:251:in `send'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:251:in `connection_without_query_cache='         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/query_cache.rb:54:in `connection='         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:220:in `retrieve_connection'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:696:in `columns'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1969:in `attributes_from_column_definition'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1351:in `initialize_without_callbacks'         from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:236:in `initialize'         from (irb):1:in `new'         from (irb):1

Any ideas on what I could do from here?

Thanks for the help, Steve

Any body? I still haven't had much luck resolving this issue, so I would definitely appreciate any suggestions.

Thanks, Steve

If you have text columns that have empty strings this error will occur. It's a bug in RubyODBC. Make sure that the text columns are either NULL or have some data in them.

gnubbs wrote: