【问题标题】:Database interaction for RailsRails 的数据库交互
【发布时间】:2013-09-30 06:08:15
【问题描述】:

我有一个关于数据库和 Rails 的小问题。

VirtualBox -> Ubuntu 数据库 -> MSSQL 2008

所以我能够通过 FreeTDs 和 TinyTDs 将我的 Ubuntu 连接到 MSSQL 并查询值。然后我在 database.yml 文件中实现了它。问题是,当我从应用程序内部进行相同的调用时,我得到一个 -1(Fixnum),而如果我在测试连接时查询它,我会得到正确的结果。

App -> database.yml -X> odbc.ini -> odbcinst.ini -> MSSQL

我认为 X 在哪里,那是我的程序失败的时候。在应用程序内部,它会正确检查连接,如果我输入错误的数据库名称甚至会引发错误,所以我知道它正在识别它。所以我真的相信 X 步是问题所在。

稍后将发布部分。

应用程序

class Order < ActiveRecord::Base
   #self.table_name = "orders"
   def self.try_t
      establish_connection :development
      Order.connection.execute("select count(*) from BBOrders")
   end
end

database.yml

development:
  adapter: sqlserver
  dsn: K_Connection
  #dsn: mydsn
  mode: odbc
  #mode: dblib
  encoding: utf8
  database: KTrade
  host: xxx.xxx.xxx.xxx
  username: tr
  password: tr2

odbc.ini

[K_connection]
Driver=FreeTDS
Description=ODBC connection via FreeTDS
Trace=Yes
Server=xxx.xxxx.xxx.xxx
Database=KTrade
TDS_Version=7.0
Port=1433

odbcinst.ini

[FreeTDS]
Description=TDS driver (Sybase/MS SQL)
Driver = /usr/local/lib/libtdsodbc.so
Setup = /usr/local/lib/libtdsS.so
CPTimeout=
CPReuse=
FileUsage=2
UsageCount=2

MSSQL 2008 数据库名称 - KTrade。 要访问的表 - dbo.BBOrders(dbo.可以省略)

【问题讨论】:

  • 我使用 SQL 2008,我在 Vmware 中,我也得到了 fixnum :-(
  • 好的,我只是在 windows 的 vmware 中尝试它,它仍然返回 -1

标签: database ruby-on-rails-3 sql-server-2008 tiny-tds


【解决方案1】:

这对我有用

result = ActiveRecord::Base.connection.select_all("SELECT * FROM table")

感谢 http://postal-code.com/binarycode/2011/05/16/raw-sql-queries-and-rails/

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多