All of the required libraries are the recommended latest versions (dbi
0.4.1, dbd-odbc 0.2.4). We turned on the INFORMATION_SCHEMA logging,
which appears below. The three queries that run up to the NilClass
exception return results when executed through SQL Server client
tools, and if I remember right our trace indicated all three queries
hit the database and returned results.
The model appears below, followed by the output of the script.
class Account < ActiveRecord::Base
set_table_name 'T_LeadVendorAccount'
set_primary_key 'LeadVendorAccountID'
has_many :emails, :foreign_key => 'LeadVendorAccountID'
end
SQL (2.2ms) SELECT @@version
SQL (80.5ms) SELECT columns.TABLE_NAME as table_name,
columns.COLUMN_NAME as name, columns.DATA_TYPE as type,
columns.COLUMN_DEFAULT as default_value, columns.NUMERIC_SCALE as
numeric_scale, columns.NUMERIC_PRECISION as numeric_precision, CASE
WHEN columns.DATA_TYPE IN ('nchar','nvarchar') THEN
columns.CHARACTER_MAXIMUM_LENGTH ELSE COL_LENGTH(columns.TABLE_NAME,
columns.COLUMN_NAME) END as length, CASE WHEN columns.IS_NULLABLE =
'YES' THEN 1 ELSE NULL end as is_nullable, CASE WHEN COLUMNPROPERTY
(OBJECT_ID(columns.TABLE_NAME), columns.COLUMN_NAME, 'IsIdentity') = 0
THEN NULL ELSE 1 END as is_identity FROM INFORMATION_SCHEMA.COLUMNS
columns WHERE columns.TABLE_NAME = 'T_LeadVendorAccount' ORDER BY
columns.ordinal_position
SQL (172.8ms) SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME NOT IN ('sysconstraints','syssegments')
/usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-adapter-2.2.19/
lib/active_record/connection_adapters/sqlserver_adapter.rb:1084:in
`column_definitions': undefined method `[]' for nil:NilClass
(NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-
adapter-2.2.19/lib/active_record/connection_adapters/
sqlserver_adapter.rb:1062:in `collect'
from /usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-
adapter-2.2.19/lib/active_record/connection_adapters/
sqlserver_adapter.rb:1062:in `column_definitions'
from /usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-
adapter-2.2.19/lib/active_record/connection_adapters/
sqlserver_adapter.rb:618:in `columns'
from /usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-
adapter-2.2.19/lib/active_record/connection_adapters/
sqlserver_adapter.rb:1109:in `special_columns'
from /usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-
adapter-2.2.19/lib/active_record/connection_adapters/
sqlserver_adapter.rb:1113:in `repair_special_columns'
from /usr/lib/ruby/gems/1.8/gems/rails-sqlserver-2000-2005-
adapter-2.2.19/lib/active_record/connection_adapters/
sqlserver_adapter.rb:815:in `select'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/
active_record/connection_adapters/abstract/database_statements.rb:7:in
`select_all_without_query_cache'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/
active_record/connection_adapters/abstract/query_cache.rb:62:in
`select_all'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/
active_record/base.rb:661:in `find_by_sql'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/
active_record/base.rb:1553:in `find_every'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/
active_record/base.rb:615:in `find'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/
active_record/base.rb:635:in `all'
from ./parse_mail.rb:6
--Jon