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: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
Thanks,
Ed