ISQL運行良好:爲什麼我使用SQL Server ActiveRecord適配器獲得分段錯誤?
kobey:/etc# isql -v censored censored censored
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select count(*) from Members;
+------------+
| |
+------------+
| 1531 |
+------------+
SQLRowCount returns 1
1 rows fetched
SQL> quit
我與Ruby的ODBC驅動程序進行了測試:
irb(main):002:0> ODBC.connect('ANAME', 'censored', 'censored')
=> #<ODBC::Database:0x7fc95d428c80>
這裏是ActiveRecord的我的連接字符串:
Legacy::LegacyRecord.establish_connection({ :dsn => 'ANAME', :password => 'censored', :username => 'censored', :mode => 'odbc', :adapter => 'sqlserver', :encoding => 'utf8'})
以下是錯誤我收到:
>> Legacy::Member.first
/usr/lib/ruby/gems/1.8/gems/activerecord-sqlserver-adapter-2.3.8/lib/active_record/connection_adapters/sqlserver_adapter.rb:970: [BUG] Segmentation fault
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
Aborted
這裏有一切涉及的版本:
- 的Debian 5.0.4
- 的ActiveRecord - SQLSERVER適配器(2.3.8)
- freetds的常見0.82-4
- libct4 0.82-4
- libsybdb5 0.82-4
- freetds的-dev的0.82-4
- libiodbc2 3.52.6-2
- libodbc-ruby1.8的0.9995-1
- libdbi-ruby1.8的0.2.2-1
- libdbd-ODBC-ruby1.8的0.2.2-1
- libdbd-ODBC旁註0.2.2-1
- odbcinst1debian1 2.2.11-16
- 的unixODBC 2.2.11-16
- libodbcinstq1c2 2.2.11-16
- tdsodbc 0.82-4
- 的unixODBC-dev的2.2.11-16
CONFIGS:
ODBCINST.INI:
[ODBC Drivers]
FreeTDS = Installed
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
ODBC.INI:
[ODBC]
Trace = No
[ODBC Data Sources]
LATA = FreeTDS
[LATA]
Driver = /usr/lib/odbc/libtdsodbc.so
Description = MS SQL Server connection to ANAME legacy database
ServerName = ANAME
Database = aname
freetds.conf:
[global]
[ANAME]
host = 10.0.0.5
tds version = 7.0
client charset = UTF-8
text size = 262144
port = 1433
是否有人有任何想法可能導致這個?
我在Ubuntu上,恰好有同樣的事情在ActiveRecord的3.0.6。 – tadman 2011-04-13 21:01:03