首页 文章

Rails - Mac 10.6上的MS-SQL Server问题(unixODBC,FreeTDS)

提问于
浏览
2

遵循Rails wiki上的说明并成功连接到带有TSQL的SQL Server 2000 - 无论是DSN-less还是DNS连接 . 我正在运行Mac OS X 10.6.3 .

Wiki instructions here.

安装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 回答

  • 1

    我会在以下之间拆分配置:

    freetds.conf
    
    [somesqlserver]
     host = HOST_ADDRESS
     port = 1433
     tds version = 8.0 # for SQL2000
    

    odbc.ini
    
    [server_connection]
    Driver = /usr/local/lib/libtdsodbc.so
    Server = ip_address_of_server
    Database = database_name
    client charset = UTF-8  #needed only on osx
    

    在database.yml中

    development:
    adapter: sqlserver
    mode: odbc
    dsn: server_connection
    username: your_username
    password: your_password
    

    Very good article for reference on osx but easily adaptable to unix

  • 0

    按照本教程将rails应用程序连接到MS SQL Server

    在Linux Box上从Rails连接到MicrosoftSQLServer:http://wiki.rubyonrails.org/database-support/ms-sql

  • 1

    我强烈建议您在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工作,但不会直接受益于任何选择使用我们产品的人 .

相关问题