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/sqlserver_adapter.rb:233:in `select_all' /vendor/rails/activerecord/lib/active_record/base.rb:390:in `find_by_sql' /vendor/rails/activerecord/lib/active_record/base.rb:924:in `find_every' /vendor/rails/activerecord/lib/active_record/base.rb:381:in `find' /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