I (sadly)必须部署一个railsWindows XP 上的应用程序必须连接到微软SQL服务器2005.
在网上冲浪有很多关于从 Linux 连接到 SQL Server 的内容,但找不到如何从 Windows 进行连接。
基本上我遵循了以下步骤:
- Install dbi gem
- Install activerecord-sql-server-适配器 gem
My 数据库.yml现在看起来像这样:
development:
adapter: sqlserver
mode: odbc
dsn: test_dj
host: HOSTNAME\SQLEXPRESS
database: test_dj
username: guest
password: guest
但我无法连接它。当我跑步时耙数据库:迁移 I get
IM002 (0) [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我不是 Windows 用户,所以不能很好地理解dsn元素左右。
有人知道如何解决这个问题吗?
提前致谢
现在,根据 Alexander 提示,我已将 database.yml 修改为:
development:
adapter: sqlserver
mode: odbc
dsn: Provider=SQLOLEDB;Data Source=SCADA\SQLEXPRESS;UID=guest;PWD=guest;Initial Catalog=test_dj;Application Name=test
But now 耙数据库:迁移返回我:
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 作为提供程序的工作脚本复制的。数据源是服务器,如果它有一个命名实例,则必须指定它,所以它要么只是Server
or Server\Instance
. The Integrated Security=SSPI
告诉它您要使用 Windows 身份验证。否则,您指定要使用的用户和密码UID=MyUser;PWD=MyPassword
。 UID、用户、用户名、密码 - 我认为所有这些参数都有效。
互联网上有一个很棒的网站提供各种 DSN 示例,但到处都找不到。如果我找到了,我会告诉你的。
如果 Rails 中没有任何提供程序,请检查 Rails 是否支持 Windows 组件对象模型 (COM)。如果是这样,您甚至可以初始化 ADODB.Connection COM 类,并在其上使用 ADO。
啊,这是我正在谈论的那个网站:http://www.connectionstrings.com/ http://www.connectionstrings.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)