遵循Rails wiki上的说明并成功连接到带有TSQL的SQL Server 2000 - 无论是DSN-less还是DNS连接 . 我正在运行Mac OS X 10.6.3 .
安装ruby-odbc,dbi(0.4.0),dbd-odbc(2.4.5),activerecord-sqlserver-adapter(2.3.5) .
在我的database.yml(Rails 2.3.6)中:
development:
adapter: sqlserver
mode: ODBC
dsn: 'DRIVER=/usr/local/lib/libtdsodbc.so;TDS_Version=8.0;SERVER=mssql01.discountasp.net;DATABASE=DB_164368_dmusd;Port=1433;uid=DB_164368_dmusd_user;pwd=Schools77;'
这会产生以下错误: ODBC::Error: S1090 (0) [unixODBC][Driver Manager]Invalid string or buffer length
当我尝试使用DSN连接时,出现以下错误: ODBC::Error: IM002 (0) [unixODBC][Driver Manager]Data source name not found, and no default driver specified
事实上我已经验证安装了FreeTDS驱动程序(libtdsodbc.so)并且路径正确 .
谁能发现我的方式错误?提前致谢 .
3 回答
我会在以下之间拆分配置:
和
在database.yml中
Very good article for reference on osx but easily adaptable to unix
按照本教程将rails应用程序连接到MS SQL Server
在Linux Box上从Rails连接到MicrosoftSQLServer:http://wiki.rubyonrails.org/database-support/ms-sql
我强烈建议您在Mac OS X上忘记UnixODBC . 而是将iODBC组件更新为the latest version .
iODBC-- Apple选择与Mac OS X一起提供的开源ODBC驱动程序管理器 - 来自与开源ODBC Adapter for Ruby on Rails - OpenLink Software相同的源代码 .
使用商业ODBC驱动程序(如that from OpenLink)测试(如果不部署)也可能值得花时间 . 这有助于缩小尝试使用"no cost"驱动程序时遇到的错误来源 . (这总是有成本的 - 唯一的问题是你是花钱还是花时间 . )
ObDisclaimer:我为OpenLink Software工作,但不会直接受益于任何选择使用我们产品的人 .