Problem in interaction with UnixODBC

Hi,

I have a ruby application connecting to SQL server 2000 that throws the
following error:

ActiveRecord::StatementInvalid (DBI::DatabaseError: 24000 (0)
[unixODBC][FreeTDS][SQL Server]Invalid cursor state: SELECT * FROM
Personnel WHERE (name = ‘mickey mouse’) ):

/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:120:in
`log’

/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb:485:in
`select’

/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb:233:in
select_all' /vendor/rails/activerecord/lib/active_record/base.rb:390:infind_by_sql’
/vendor/rails/activerecord/lib/active_record/base.rb:924:in
find_every' /vendor/rails/activerecord/lib/active_record/base.rb:381:infind’
/app/controllers/test.rb:3

The statement obviously returns no records, and it is this condition
that seems to throw the error.

I’m guessing that the problem lies with UnixODBC or the way Rails
interacts with it because this code works fine on Win32 where Rails is
going directly to the Microsoft ODBC driver.

Current revision levels are as follows:

UnixODBC 2.2.12
Ruby-odbc 0.9994
Ruby-dbi 0.0.21
Freetds 0.64

Thanks,

Ed

don’t know if this will help you but I have had luck using it on
linux/unixODBC to connect to an AS400 system.

http://rubyforge.org/projects/odbc-rails/