【问题标题】:TinyTDS connection issues and return from SQL server 2008TinyTDS 连接问题并从 SQL Server 2008 返回
【发布时间】:2016-08-22 16:37:00
【问题描述】:

我在使用 TinyTDS 从 SQL Server 2008 取回结果集时遇到问题。我的 SQL 服务器驻留在我的本地机器上,而我在 Windows 7 机器上。

我在database.yml文件中的连接设置是这样的..

 development:
   adapter: sqlserver
   host: localhost
   database: database_name
   username: username
   password: password
   timeout: 5000

 client = TinyTds::Client.new(use the above settings)
 puts client.active?
 result = client.execute("select * from tablename")
 puts "#{result}"

我打印时得到的结果是

  true
  -1

我也看不到所有可用于 TinyTds::Client 的方法。我猜我缺少一些设置。或者必须在某处添加它。

谁能帮助我或建议我在这里做错了什么..

【问题讨论】:

  • 看起来你做的一切都是正确的。您确定数据库中存在目标表吗?返回的结果是 Enumerable,result.first 应该是一个以字段为键的散列。对于客户端方法运行client.methods,但据我所知execute 是主要用于运行SQL 语句。
  • @Simon,感谢您的回复,该表确实存在于数据库中。但我不确定我还需要做什么..
  • 有时这就是我得到的“#<:result:0x5833908>”
  • "#<:result:0x5833908>" 似乎你得到了你的结果。您可以使用awesome_print 库将其打印出来吗,如下所示:ap result.first 而不是puts "#{result}"。此外,-1 似乎是错误代码。你能试着打印出result.first.[:Error](大写E)和result.first[:Message](大写M)吗?干杯
  • 我已经完成了所有这一切,tiny_tds 似乎无法正常工作,并抛出 first[:Error] 和 first[:Message] 异常......我已经放弃了,不幸的是我没有是时候调试整个 tiny_tds 产品或我的设置的一些核心问题,并使用明显的 ActiveRecord 和 ruby​​-odbc。但是从那以后安装和删除 tiny_tds 现在我什至无法使用 ruby​​-odbc 配置 Activerecord 看到我的其他请求困境

标签: ruby tiny-tds


【解决方案1】:

查看 TinyTDS 的 README,如果您要使用低级连接模式而不是适配器,则需要正确使用客户端/结果对象。在这种情况下,请执行data = client.execute("select * from tablename").each。请注意,我在结果对象上调用 each 方法来取回数据。

【讨论】:

    【解决方案2】:

    对于成功运行的 TinyTDS,您应该调用

    TinyTds::Client.new(all other params, :tds_version => 100)
    

    提供 tds_version 参数很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多