【问题标题】:Rails - MS-SQL Server problems (unixODBC, FreeTDS) on Mac 10.6Rails - Mac 10.6 上的 MS-SQL Server 问题(unixODBC、FreeTDS)
【发布时间】:2010-05-25 05:31:26
【问题描述】:

按照 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) 已安装并且路径正确。

谁能发现我的方法的错误?提前致谢。

【问题讨论】:

    标签: sql-server ruby-on-rails macos odbc


    【解决方案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

    【讨论】:

      【解决方案2】:

      按照本教程将您的 Rails 应用程序连接到 MS SQL Server

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

      【讨论】:

        【解决方案3】:

        我强烈建议您忘记 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)进行测试(如果不部署)可能也是值得的。这有助于缩小您在尝试使用“免费”驱动程序时遇到的错误来源。 (总有成本——唯一的问题是你是花钱还是花时间。)

        ObDisclaimer:我为 OpenLink Software 工作,但不直接受益于任何选择使用我们产品的人。

        【讨论】:

        • 在推荐您的雇主生产的商业产品时,您应该披露您的隶属关系。
        猜你喜欢
        • 2016-10-22
        • 1970-01-01
        • 1970-01-01
        • 2012-09-09
        • 2013-05-31
        • 2011-03-16
        • 2018-01-30
        • 2012-04-13
        • 2018-04-23
        相关资源
        最近更新 更多