TinyTds::Client.new() gives an error "undefined symbol: dbsetluser"

Hello Dear experts,

I am new to Ruby on Rails. Though I want to access to MSSQL 2005 from ruby. I installed tiny_tds using following commands:

sudo apt-get install freetds-dev gem install tiny_tds

And now when I executed

@client = TinyTds::Client.new(   :username => 'username',   :password => 'password',   :host => '192.168.1.45',   :database => 'test_db',   :login_timeout => 5,   :timeout => 5 ) , it gives an error "ruby: symbol lookup error: /usr/local/lib/ruby/gems/1.8/gems/tiny_tds-0.5.1/lib/tiny_tds/tiny_tds.so: undefined symbol: dbsetluser".

Could you please help me out to find a solution to this problem.

PS: I searched from Google, but could not find anything.

Hello Dear experts, I am new to Ruby on Rails. Though I want to access to MSSQL 2005 from ruby. I installed tiny_tds using following commands:

sudo apt-get install freetds-dev gem install tiny_tds

What version of FreeTDS got installed?

“ruby: symbol lookup error: /usr/local/lib/ruby/gems/1.8/gems/tiny_tds-0.5.1/lib/tiny_tds/tiny_tds.so: undefined symbol: dbsetluser”.

Looks like the gem is expecting a function (symbol) exported from FreeTDS that is not there, which brings again the question about what version of FreeTDS did you install.

Also, more details about your version of Ruby (ruby -v, gem env) will be good.

Considering you mention apt, I expect we’re talking about Ubuntu/Debian and a debian-provided Ruby? if not, please provide more details.

Thanks for your concern :slight_smile: Well, I am using Ubuntu 8.04.3 LTS server version.

What version of FreeTDS got installed?

In the /etc/freetds/freetds.conf file, it is written as # $Id: freetds.conf,v 1.9 2003/12/04 22:26:55 freddy77 Exp $ I don't know how to check the version of freetds properly, my bad.

I just executed "sudo apt-get install freetds-dev" to install freetds, I am not sure it really installed freetds.

Ruby version: ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]

Any advise, please.

forgot the gem env:

RubyGems Environment:   - RUBYGEMS VERSION: 1.6.2   - RUBY VERSION: 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]   - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8   - RUBY EXECUTABLE: /usr/local/bin/ruby   - EXECUTABLE DIRECTORY: /usr/local/bin   - RUBYGEMS PLATFORMS:     - ruby     - x86-linux   - GEM PATHS:      - /usr/local/lib/ruby/gems/1.8      - /home/projectadmin/.gem/ruby/1.8   - GEM CONFIGURATION:      - :update_sources => true      - :verbose => true      - :benchmark => false      - :backtrace => false      - :bulk_threshold => 1000   - REMOTE SOURCES:      - http://rubygems.org/

I downloaded FreeTDS 0.91 source code, and executed ./configre, make, make install, make clean.

After this, the above problem disappeared, i.e., freeTDS had not actually been installed.

Thanks for your valuable words :smiley: