2012-04-03 34 views
0

我试图实例化内存中的太多对象时出现此错误。这是一个Rails 2.3.x应用程序,以SQL Server作为数据库。ActiveRecord :: StatementInvalid:ArgumentError:负的字符串大小(或大小太大):SELECT * FROM [shop]

>> Shop.count 
=> 14111 
>> Shop.all 
ActiveRecord::StatementInvalid: ArgumentError: negative string size (or size too big): SELECT * FROM [shop] 
from /Users/lunks/.rvm/gems/[email protected]/gems/activerecord-2.3.14/ lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log' 
from /Users/lunks/.rvm/ gems/[email protected]/gems/activerecord-sqlserver-adapter-2.3.24/lib/active_record/connection_adapters/sqlserver_adapter.rb:1004:in `raw_select' 
from /Users/lunks/.rvm/gems/[email protected] ums/gems/activerecord-sqlserver-adapter-2.3.24/lib/active_record/connection_adapters/sqlserver_adapter.rb:965:in `select' 
from /Users/lunks/.rvm/gems/ree-1. [email protected]/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache' 
from /Users/lunks/.rvm /gems/[email protected]/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/query_cache.rb:62:in `select_all' 
from /Users/lu nks/.rvm/gems/[email protected]/gems/activerecord-2.3.14/lib/active_record/base.rb:665:in `find_by_sql' 
from /Users/lunks/.rvm/gems/[email protected]/gem s/activerecord-2.3.14/lib/active_record/base.rb:1582:in `find_every' 
f rom /Users/lunks/.rvm/gems/[email protected]/gems/activerecord-2.3.14/lib/active_record/base.rb:619:in `find' 
from /Users/lunks/.rvm/gems/[email protected]/ge ms/activerecord-2.3.14/lib/active_record/base.rb:639:in `all' 
from (irb):3` 

回答

0

解决不断变化的ODBC宝石需要对odbc_utf8而不是odbc。不过,排序规则采用Latin1。 :P