从Windows将rails应用程序连接到SQL Server 2005

(遗憾地)必须在Windows XP上部署一个必须连接到Microsoft SQL Server 2005rails应用程序。

在网上冲浪有很多从Linux到SQL Server连接的点击,但无法从Windows中找到如何做到这一点。

基本上我遵循以下步骤:

  • 安装dbi gem
  • 安装activerecord-sql-server-adapter gem

我的database.yml现在看起来像这样:

development: adapter: sqlserver mode: odbc dsn: test_dj host: HOSTNAME\SQLEXPRESS database: test_dj username: guest password: guest 

但我无法连接它。 当我运行rake db:migrate时,我得到了

 IM002 (0) [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 

我不是Windows用户,因此无法理解dsn元素的含义。 有人知道如何解决这个问题吗?

提前致谢


现在我已经将Alexander.yml修改为:

 development: adapter: sqlserver mode: odbc dsn: Provider=SQLOLEDB;Data Source=SCADA\SQLEXPRESS;UID=guest;PWD=guest;Initial Catalog=test_dj;Application Name=test 

但现在rake db:migrate返回给我:

 S1090 (0) [Microsoft][ODBC Driver Manager] Invalid string or buffer length 

我错过了什么吗?

这是一个示例DSN,它使用Windows用户帐户连接到数据库(最适合使用域登录的公司网络时)

Provider=SQLOLEDB;Data Source=MyServer\MyInstance;Integrated Security=SSPI;Initial Catalog=MyDatabase;Application Name=My Application Name that will show up in the trace

所以这使用了用于SQL Server的OLEDB提供程序。 也可以使用SQLNCLI,没有尝试过使用ODBC。 实际上这个DSN还没有经过测试(必须等待我的管理员给我必要的权限),但是它是从一个使用SQLNCLI作为提供者的工作脚本复制的。 数据源是服务器,如果它有一个命名实例,则必须指定它,因此它只是ServerServer\InstanceIntegrated Security=SSPI告诉您要使用Windows身份validation。 否则,您使用UID=MyUser;PWD=MyPassword指定要使用的用户和密码UID=MyUser;PWD=MyPassword 。 UID,用户,用户名,密码 – 我认为所有这些参数都有效。

互联网上有一个很棒的网站提供各种DSN样本,但在任何地方都找不到。 如果我找到了,我会告诉你的。

如果您没有Rails中的任何提供程序,请检查Rails是否支持Windows组件对象模型(COM)。 如果是这样,您甚至可以初始化ADODB.Connection COM类,在其上使用ADO。

啊,这是我正在谈论的网站: http : //www.connectionstrings.com/