我正在尝试将Rails连接到SQL Server。我安装了activerecord-sqlserver-adapter和ruby-odbc gems,但我不知道该把什么放在我的database.yml文件中。
究竟什么是DSN,为什么需要它? (这是一些特定于Windows的事情吗?)
如果我想使用Windows身份验证而不是指定用户名和密码,该怎么办?
我尝试创建DSN,指定Windows NT身份验证,并在config.yml中添加以下内容:
development:
adapter: sqlserver
dsn: myDsn
mode: odbc
但是我收到“指定的DSN包含驱动程序和应用程序之间的体系结构不匹配”错误。 [我尝试从Windows / system32 / odbcad32.exe创建DSN,因为谷歌搜索说这会创建一个32位的DSN,但我得到同样的错误。]
我在database.yml文件中遗漏了什么?
更新: 我尝试使用
development:
adapter: sqlserver
mode:odbc
dsn: Provider=SQLOLEDB; Data Source=.\SQLEXPRESS; Integrated Security=SSPI
但我得到“未找到数据源名称且未指定默认驱动程序”错误。我的Provider可能不是SQLOLEDB吗? [我不知道提供商是什么或者如何弄清楚它应该是什么 - 我只是从我找到的另一个连接字符串中复制它。]我知道我可以使用我的Windows身份验证连接到。\ SQLEXPRESS实际的SQL Server Management Studio程序。
答案 0 :(得分:2)
DSN是“数据库源名称”。它包含ODBC驱动程序连接到特定数据库所需的信息。
也许这个SO Q& A会帮助你:Connect rails application to SQL Server 2005 from Windows
另请参阅connectionstrings.com以获取有关连接字符串的一般帮助。