我有一种情况,我正在尝试构建一个Web应用程序,它将表中的记录总数计算并输出到屏幕上。听起来很简单......?
我遇到的主要问题是我想看的数据库是MSSQL。我之前没有从Rails建立这种数据库连接,所以我希望有人能指出我正确的方向。
我的RoR应用程序将存在于Ubuntu服务器上(并且正在OSX Leopard系统上开发)。
修改
我应该澄清MSSQL DB在SQL Server 2005上运行并且在Windows服务器环境中。
我试过查看wiki.rubyonrails.org指南,但该网站似乎已经失效(悲伤)
谢谢!
答案 0 :(得分:8)
此Stackoverflow问题可能有所帮助:Rails & MSSQL 2008 - Will We Hit Barriers?
基本上你需要安装一个MSSQL数据库适配器(而不是大多数教程都会引导你完成的MySQL或Postgres),并适当地配置你的database.yml:
http://rorblog.techcfl.com/2008/04/14/ruby-on-rails-connection-to-sql-server/
http://the-banana-peel.saltybanana.com/2008/06/connecto-to-microsoft-sql-server-from.html
http://wiki.rubyonrails.org/database-support/ms-sql(尽管rails wiki在写作时看不起来)
P.S。我假设MSSQL服务器将在某个单独的Microsoft服务器上运行。
答案 1 :(得分:2)
看一下我如何使用上述actionrecord-sqlserver adapter here
的例子。您可以使用rails模型的映射并使用ActiveModel帮助程序。
答案 2 :(得分:0)
我会有一个刺,并说你可能需要通过ODBC连接到mssql DB。似乎有一些宝石可以做到这一点。希望其中一个人能有文档让你走上正轨。
答案 3 :(得分:0)
答案 4 :(得分:0)
我使用Sequel与DBI和ODBC,它似乎正在工作。
require "dbi"
require "sequel"
Sequel.datetime_class = DateTime
p "testing dbi"
# to setup a DSN, Start->Settings->CtlPanel->AdminTools->DataSources
conn = DBI.connect('DBI:ODBC:dsn')
p conn.connected?
p conn.select_one("SELECT @@VERSION")
conn.disconnect
p "testing sequel"
db = Sequel.odbc('(odbc_dsn_goes_here)', :db_type=>'mssql')
db.fetch("SELECT TOP 2 * FROM TABLE") do |row|
p row
end
答案 5 :(得分:0)
我将 activerecord-sqlserver-adapter 与 tiny_tds 一起使用,它确实有效!
这是database.yml
development:
adapter: sqlserver
username: 'user'
password: 'secret'
dataserver: 'dbserver_name\instance_name'
database: 'dbname'
appname: 'my app name'
答案 6 :(得分:0)
名为active-record-sql-adapter的gem允许您通过ActiveRecord连接到SQL Server数据库。你可以做点什么
class RemodeDB
establish_connection(:remote_db) #<=
self.abstract_class = true # to avoid Rails' no associated model exception
end
然后让你的类继承这样的连接
class Product < RemoteDB
self.table_name ...
end
请注意,为了连接到早期版本的SQL Server(在您的情况下为2005),您需要一个早期版本的gem,它可能与您当前版本的Rails不兼容。