gpt4 book ai didi

sql-server - 连接到 SQL Server(从 Ubuntu): [RubyODBC] Cannot allocate SQLHENV

转载 作者:行者123 更新时间:2023-12-04 19:23:57 29 4
gpt4 key购买 nike

我正在尝试将我的 Ruby on Rails 应用程序连接到 Microsoft SQL Server 2008 中的旧数据库。我查看了不同的教程、页面、帮助页面和问题页面,但仍然无法使其工作.

我在用着:

  • Ubuntu 业力
  • rails 2.3.5
  • ruby 1.8.7
  • 主动记录-odbc-适配器 2.0
  • activerecord-sqlserver-适配器 2.3
  • dbd-odbc 0.2.5
  • dbi 0.4.3

  • 我也安装了:
  • 免费TDS 0.82-6
  • tdsodbc 0.82-6
  • sqsh 2.1-8build1
  • libodbc-ruby1.8 0.9997-2(也尝试过使用 0.9995 和 0.9998)
  • unixodbc 2.2.11-16ubuntu1

  • 我已经设法用 tsql、sqsh 和 isql 连接到数据库。但不能通过irb或rails连接它。每当我尝试时,我都会收到以下错误:
    DBI::DatabaseError: **INTERN (0) [RubyODBC]Cannot allocate SQLHENV**
    from /var/lib/gems/1.8/gems/dbd-odbc-0.2.5/lib/dbd/odbc/driver.rb:36:in `connect'
    from /usr/lib/ruby/1.8/dbi/handles/driver.rb:33:in `connect'
    from /usr/lib/ruby/1.8/dbi.rb:142:in `connect'
    from (irb):4

    我使用 odbc-adapter 还是 sql-adapter 并不重要,因为它在 dbi 驱动程序中总是失败。关于什么可能是错的任何想法?

    我正确定义了 odbc.ini、odbcinst.ini 和 freetds.conf 文件。他们正在使用所有其他命令进行连接(isql、tsql、sqsh)。

    请帮助我或指出可能对我有帮助的地方! =)

    PS:我已经关注了以下页面但没有多大成功(其中包括):
  • wiki.rubyonrails.org/database-support/ms-sql?s[]=sql&s[]=server
  • piao-tech.blogspot.com/2008/02/using-activerecord-with-microsoft-sql.html
  • lambie.org/2008/02/28/connecting-to-an-mssql-database-from-ruby-on-ubuntu/
  • stackoverflow.com/questions/1419397/rubyodbc-cannot-allocate-sqlhenv
  • 最佳答案

    This page似乎表明该问题可能与无法找到共享库有关。您应该通过检查 ldconfig -v 的输出并确保包含 libodbc、libodbcinst 和 libtdsodbc 的文件夹包含在库搜索路径中来确保系统可以找到它可能需要的任何库。如果您不确定如何操作,那么 this link可能会有所帮助。

    如果失败,则使用以下行手动构建 gem

    ruby extconf.rb --with-odbc-dir=/folder/to/unixodbc --disable-dlopen

    我不能发誓这是正确的答案,但它可能会有所帮助。我确实有 freetds 和 SQL Server 与 Centos 上的 rails 一起工作得非常愉快

    关于sql-server - 连接到 SQL Server(从 Ubuntu): [RubyODBC] Cannot allocate SQLHENV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100986/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com